YES 27.925 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/FiniteMap.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:



HASKELL
  ↳ LR

mainModule FiniteMap
  ((intersectFM_C :: (Ord b, Ord d) => (c  ->  e  ->  a ->  FiniteMap (d,b) c  ->  FiniteMap (d,b) e  ->  FiniteMap (d,b) a) :: (Ord b, Ord d) => (c  ->  e  ->  a ->  FiniteMap (d,b) c  ->  FiniteMap (d,b) e  ->  FiniteMap (d,b) a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord b => FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM fm key elt addToFM_C (\old new ->new) fm key elt

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM (\key elt rest ->(key,elt: rest) [] fm

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 (\(_,mid_elt1) ->mid_elt1) vv2
mid_elt2 (\(_,mid_elt2) ->mid_elt2) vv3
mid_key1 (\(mid_key1,_) ->mid_key1) vv2
mid_key2 (\(mid_key2,_) ->mid_key2) vv3
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM_C :: Ord b => (d  ->  a  ->  c ->  FiniteMap b d  ->  FiniteMap b a  ->  FiniteMap b c
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 (\(Just elt1) ->elt1) vv1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



Lambda Reductions:
The following Lambda expression
\(mid_key1,_)→mid_key1

is transformed to
mid_key10 (mid_key1,_) = mid_key1

The following Lambda expression
\(_,mid_elt1)→mid_elt1

is transformed to
mid_elt10 (_,mid_elt1) = mid_elt1

The following Lambda expression
\(mid_key2,_)→mid_key2

is transformed to
mid_key20 (mid_key2,_) = mid_key2

The following Lambda expression
\(_,mid_elt2)→mid_elt2

is transformed to
mid_elt20 (_,mid_elt2) = mid_elt2

The following Lambda expression
\(Just elt1)→elt1

is transformed to
elt10 (Just elt1) = elt1

The following Lambda expression
\keyeltrest→(key,elt: rest

is transformed to
fmToList0 key elt rest = (key,elt: rest

The following Lambda expression
\oldnewnew

is transformed to
addToFM0 old new = new



↳ HASKELL
  ↳ LR
HASKELL
      ↳ CR

mainModule FiniteMap
  ((intersectFM_C :: (Ord d, Ord b) => (c  ->  a  ->  e ->  FiniteMap (b,d) c  ->  FiniteMap (b,d) a  ->  FiniteMap (b,d) e) :: (Ord b, Ord d) => (c  ->  a  ->  e ->  FiniteMap (b,d) c  ->  FiniteMap (b,d) a  ->  FiniteMap (b,d) e)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (_,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (_,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,_) mid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,_) mid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM_C :: Ord a => (c  ->  d  ->  b ->  FiniteMap a c  ->  FiniteMap a d  ->  FiniteMap a b
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord a => FiniteMap a b  ->  a  ->  Maybe b
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



Case Reductions:
The following Case expression
case fm_l of
 EmptyFM → True
 Branch left_key _ _ _ _ → 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

is transformed to
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key _ _ _ _) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

The following Case expression
case fm_r of
 EmptyFM → True
 Branch right_key _ _ _ _ → 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

is transformed to
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key _ _ _ _) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

The following Case expression
case fm_R of
 Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 → single_L fm_L fm_R
 | otherwise
 → double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

The following Case expression
case fm_L of
 Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 → single_R fm_L fm_R
 | otherwise
 → double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

The following Case expression
case compare x y of
 EQ → o
 LT → LT
 GT → GT

is transformed to
primCompAux0 o EQ = o
primCompAux0 o LT = LT
primCompAux0 o GT = GT



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
HASKELL
          ↳ IFR

mainModule FiniteMap
  ((intersectFM_C :: (Ord b, Ord a) => (d  ->  e  ->  c ->  FiniteMap (b,a) d  ->  FiniteMap (b,a) e  ->  FiniteMap (b,a) c) :: (Ord a, Ord b) => (d  ->  e  ->  c ->  FiniteMap (b,a) d  ->  FiniteMap (b,a) e  ->  FiniteMap (b,a) c)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord b => FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (_,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (_,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,_) mid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,_) mid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM_C :: Ord d => (a  ->  b  ->  c ->  FiniteMap d a  ->  FiniteMap d b  ->  FiniteMap d c
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



If Reductions:
The following If expression
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero

is transformed to
primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y))
primDivNatS0 x y False = Zero

The following If expression
if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x

is transformed to
primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y)
primModNatS0 x y False = Succ x



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
HASKELL
              ↳ BR

mainModule FiniteMap
  ((intersectFM_C :: (Ord a, Ord c) => (b  ->  d  ->  e ->  FiniteMap (c,a) b  ->  FiniteMap (c,a) d  ->  FiniteMap (c,a) e) :: (Ord a, Ord c) => (b  ->  d  ->  e ->  FiniteMap (c,a) b  ->  FiniteMap (c,a) d  ->  FiniteMap (c,a) e)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (_,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (_,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,_) mid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,_) mid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM_C :: Ord d => (c  ->  b  ->  a ->  FiniteMap d c  ->  FiniteMap d b  ->  FiniteMap d a
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



Replaced joker patterns by fresh variables and removed binding patterns.
Binding Reductions:
The bind variable of the following binding Pattern
fm_l@(Branch yy yz zu zv zw)

is replaced by the following term
Branch yy yz zu zv zw

The bind variable of the following binding Pattern
fm_r@(Branch zy zz vuu vuv vuw)

is replaced by the following term
Branch zy zz vuu vuv vuw

The bind variable of the following binding Pattern
fm_l@(Branch vuy vuz vvu vvv vvw)

is replaced by the following term
Branch vuy vuz vvu vvv vvw

The bind variable of the following binding Pattern
fm_r@(Branch vvy vvz vwu vwv vww)

is replaced by the following term
Branch vvy vvz vwu vwv vww



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
HASKELL
                  ↳ COR

mainModule FiniteMap
  ((intersectFM_C :: (Ord d, Ord b) => (e  ->  a  ->  c ->  FiniteMap (b,d) e  ->  FiniteMap (b,d) a  ->  FiniteMap (b,d) c) :: (Ord d, Ord b) => (e  ->  a  ->  c ->  FiniteMap (b,d) e  ->  FiniteMap (b,d) a  ->  FiniteMap (b,d) c)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMax (Branch key elt vwx fm_l EmptyFMfm_l
deleteMax (Branch key elt vwy fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt wuw EmptyFM fm_rfm_r
deleteMin (Branch key elt wux fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vyz vzu EmptyFM(key,elt)
findMax (Branch key elt vzv vzw fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  a  ->  c  ->  c ->  c  ->  FiniteMap b a  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt wy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (vzx,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (vzy,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,vzzmid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,wuumid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zw) vuv) vuw
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
 | otherwise = 
glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw) where 
size_l sizeFM (Branch yy yz zu zv zw)
size_r sizeFM (Branch zy zz vuu vuv vuw)

  intersectFM_C :: Ord b => (c  ->  d  ->  a ->  FiniteMap b c  ->  FiniteMap b d  ->  FiniteMap b a
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 wuy left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord a => FiniteMap a b  ->  a  ->  Maybe b
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt wuv fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vyy fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l vwz fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vw vx vy vz
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key wu wv ww wx
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) vwv) vww
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
 | otherwise = 
mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww) where 
size_l sizeFM (Branch vuy vuz vvu vvv vvw)
size_r sizeFM (Branch vvy vvz vwu vwv vww)

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch xz yu size yv ywsize

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt xy fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt xx fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Cond Reductions:
The following Function with conditions
splitLT EmptyFM split_key = emptyFM
splitLT (Branch key elt xx fm_l fm_rsplit_key
 | split_key < key
 = splitLT fm_l split_key
 | split_key > key
 = mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise
 = fm_l

is transformed to
splitLT EmptyFM split_key = splitLT4 EmptyFM split_key
splitLT (Branch key elt xx fm_l fm_rsplit_key = splitLT3 (Branch key elt xx fm_l fm_rsplit_key

splitLT2 key elt xx fm_l fm_r split_key True = splitLT fm_l split_key
splitLT2 key elt xx fm_l fm_r split_key False = splitLT1 key elt xx fm_l fm_r split_key (split_key > key)

splitLT1 key elt xx fm_l fm_r split_key True = mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt xx fm_l fm_r split_key False = splitLT0 key elt xx fm_l fm_r split_key otherwise

splitLT0 key elt xx fm_l fm_r split_key True = fm_l

splitLT3 (Branch key elt xx fm_l fm_rsplit_key = splitLT2 key elt xx fm_l fm_r split_key (split_key < key)

splitLT4 EmptyFM split_key = emptyFM
splitLT4 wzz xuu = splitLT3 wzz xuu

The following Function with conditions
splitGT EmptyFM split_key = emptyFM
splitGT (Branch key elt xy fm_l fm_rsplit_key
 | split_key > key
 = splitGT fm_r split_key
 | split_key < key
 = mkVBalBranch key elt (splitGT fm_l split_keyfm_r
 | otherwise
 = fm_r

is transformed to
splitGT EmptyFM split_key = splitGT4 EmptyFM split_key
splitGT (Branch key elt xy fm_l fm_rsplit_key = splitGT3 (Branch key elt xy fm_l fm_rsplit_key

splitGT0 key elt xy fm_l fm_r split_key True = fm_r

splitGT2 key elt xy fm_l fm_r split_key True = splitGT fm_r split_key
splitGT2 key elt xy fm_l fm_r split_key False = splitGT1 key elt xy fm_l fm_r split_key (split_key < key)

splitGT1 key elt xy fm_l fm_r split_key True = mkVBalBranch key elt (splitGT fm_l split_keyfm_r
splitGT1 key elt xy fm_l fm_r split_key False = splitGT0 key elt xy fm_l fm_r split_key otherwise

splitGT3 (Branch key elt xy fm_l fm_rsplit_key = splitGT2 key elt xy fm_l fm_r split_key (split_key > key)

splitGT4 EmptyFM split_key = emptyFM
splitGT4 xux xuy = splitGT3 xux xuy

The following Function with conditions
glueVBal EmptyFM fm2 = fm2
glueVBal fm1 EmptyFM = fm1
glueVBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
 | sIZE_RATIO * size_l < size_r
 = mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zwvuvvuw
 | sIZE_RATIO * size_r < size_l
 = mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
 | otherwise
 = glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
where 
size_l  = sizeFM (Branch yy yz zu zv zw)
size_r  = sizeFM (Branch zy zz vuu vuv vuw)

is transformed to
glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM
glueVBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw) = glueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

glueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw) = 
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_l < size_r)
where 
glueVBal0 yy yz zu zv zw zy zz vuu vuv vuw True = glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw False = glueVBal0 yy yz zu zv zw zy zz vuu vuv vuw otherwise
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zwvuvvuw
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw False = glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch yy yz zu zv zw)
size_r  = sizeFM (Branch zy zz vuu vuv vuw)

glueVBal4 fm1 EmptyFM = fm1
glueVBal4 xvw xvx = glueVBal3 xvw xvx

glueVBal5 EmptyFM fm2 = fm2
glueVBal5 xvz xwu = glueVBal4 xvz xwu

The following Function with conditions
mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt
mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)
 | sIZE_RATIO * size_l < size_r
 = mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvwvwvvww
 | sIZE_RATIO * size_r < size_l
 = mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
 | otherwise
 = mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)
where 
size_l  = sizeFM (Branch vuy vuz vvu vvv vvw)
size_r  = sizeFM (Branch vvy vvz vwu vwv vww)

is transformed to
mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww) = mkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

mkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww) = 
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * size_l < size_r)
where 
mkVBalBranch0 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)
mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False = mkVBalBranch0 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww otherwise
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvwvwvvww
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False = mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch vuy vuz vvu vvv vvw)
size_r  = sizeFM (Branch vvy vvz vwu vwv vww)

mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt
mkVBalBranch4 xwy xwz xxu xxv = mkVBalBranch3 xwy xwz xxu xxv

mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt
mkVBalBranch5 xxx xxy xxz xyu = mkVBalBranch4 xxx xxy xxz xyu

The following Function with conditions
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)

mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise

mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr True = double_R fm_L fm_R

mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

The following Function with conditions
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)

mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise

mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr True = double_L fm_L fm_R

mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

The following Function with conditions
mkBalBranch key elt fm_L fm_R
 | size_l + size_r < 2
 = mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l
 = mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r
 = mkBalBranch1 fm_L fm_R fm_L
 | otherwise
 = mkBranch 2 key elt fm_L fm_R
where 
double_L fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vyy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l vwz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

is transformed to
mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R

mkBalBranch6 key elt fm_L fm_R = 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)
mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vyy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l vwz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

The following Function with conditions
addToFM_C combiner EmptyFM key elt = unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt
 | new_key < key
 = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
 | new_key > key
 = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise
 = Branch new_key (combiner elt new_eltsize fm_l fm_r

is transformed to
addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt

addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_eltsize fm_l fm_r

addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

addToFM_C4 combiner EmptyFM key elt = unitFM key elt
addToFM_C4 xyz xzu xzv xzw = addToFM_C3 xyz xzu xzv xzw

The following Function with conditions
glueBal EmptyFM fm2 = fm2
glueBal fm1 EmptyFM = fm1
glueBal fm1 fm2
 | sizeFM fm2 > sizeFM fm1
 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise
 = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1fm2
where 
mid_elt1  = mid_elt10 vv2
mid_elt10 (vzx,mid_elt1) = mid_elt1
mid_elt2  = mid_elt20 vv3
mid_elt20 (vzy,mid_elt2) = mid_elt2
mid_key1  = mid_key10 vv2
mid_key10 (mid_key1,vzz) = mid_key1
mid_key2  = mid_key20 vv3
mid_key20 (mid_key2,wuu) = mid_key2
vv2  = findMax fm1
vv3  = findMin fm2

is transformed to
glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM
glueBal fm1 fm2 = glueBal2 fm1 fm2

glueBal2 fm1 fm2 = 
glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1)
where 
glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1fm2
glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise
mid_elt1  = mid_elt10 vv2
mid_elt10 (vzx,mid_elt1) = mid_elt1
mid_elt2  = mid_elt20 vv3
mid_elt20 (vzy,mid_elt2) = mid_elt2
mid_key1  = mid_key10 vv2
mid_key10 (mid_key1,vzz) = mid_key1
mid_key2  = mid_key20 vv3
mid_key20 (mid_key2,wuu) = mid_key2
vv2  = findMax fm1
vv3  = findMin fm2

glueBal3 fm1 EmptyFM = fm1
glueBal3 xzy xzz = glueBal2 xzy xzz

glueBal4 EmptyFM fm2 = fm2
glueBal4 yuv yuw = glueBal3 yuv yuw

The following Function with conditions
lookupFM EmptyFM key = Nothing
lookupFM (Branch key elt wuv fm_l fm_rkey_to_find
 | key_to_find < key
 = lookupFM fm_l key_to_find
 | key_to_find > key
 = lookupFM fm_r key_to_find
 | otherwise
 = Just elt

is transformed to
lookupFM EmptyFM key = lookupFM4 EmptyFM key
lookupFM (Branch key elt wuv fm_l fm_rkey_to_find = lookupFM3 (Branch key elt wuv fm_l fm_rkey_to_find

lookupFM2 key elt wuv fm_l fm_r key_to_find True = lookupFM fm_l key_to_find
lookupFM2 key elt wuv fm_l fm_r key_to_find False = lookupFM1 key elt wuv fm_l fm_r key_to_find (key_to_find > key)

lookupFM0 key elt wuv fm_l fm_r key_to_find True = Just elt

lookupFM1 key elt wuv fm_l fm_r key_to_find True = lookupFM fm_r key_to_find
lookupFM1 key elt wuv fm_l fm_r key_to_find False = lookupFM0 key elt wuv fm_l fm_r key_to_find otherwise

lookupFM3 (Branch key elt wuv fm_l fm_rkey_to_find = lookupFM2 key elt wuv fm_l fm_r key_to_find (key_to_find < key)

lookupFM4 EmptyFM key = Nothing
lookupFM4 yuz yvu = lookupFM3 yuz yvu

The following Function with conditions
intersectFM_C combiner fm1 EmptyFM = emptyFM
intersectFM_C combiner EmptyFM fm2 = emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 wuy left right)
 | Maybe.isJust maybe_elt1
 = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise
 = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
where 
elt1  = elt10 vv1
elt10 (Just elt1) = elt1
gts  = splitGT fm1 split_key
lts  = splitLT fm1 split_key
maybe_elt1  = lookupFM fm1 split_key
vv1  = maybe_elt1

is transformed to
intersectFM_C combiner fm1 EmptyFM = intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 = intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 wuy left right) = intersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left right)

intersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left right) = 
intersectFM_C1 combiner fm1 split_key elt2 wuy left right (Maybe.isJust maybe_elt1)
where 
elt1  = elt10 vv1
elt10 (Just elt1) = elt1
gts  = splitGT fm1 split_key
intersectFM_C0 combiner fm1 split_key elt2 wuy left right True = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 wuy left right True = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 wuy left right False = intersectFM_C0 combiner fm1 split_key elt2 wuy left right otherwise
lts  = splitLT fm1 split_key
maybe_elt1  = lookupFM fm1 split_key
vv1  = maybe_elt1

intersectFM_C3 combiner EmptyFM fm2 = emptyFM
intersectFM_C3 yvx yvy yvz = intersectFM_C2 yvx yvy yvz

intersectFM_C4 combiner fm1 EmptyFM = emptyFM
intersectFM_C4 ywv yww ywx = intersectFM_C3 ywv yww ywx

The following Function with conditions
compare x y
 | x == y
 = EQ
 | x <= y
 = LT
 | otherwise
 = GT

is transformed to
compare x y = compare3 x y

compare0 x y True = GT

compare2 x y True = EQ
compare2 x y False = compare1 x y (x <= y)

compare1 x y True = LT
compare1 x y False = compare0 x y otherwise

compare3 x y = compare2 x y (x == y)

The following Function with conditions
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd' x ywy = gcd'2 x ywy
gcd' x y = gcd'0 x y

gcd'0 x y = gcd' y (x `rem` y)

gcd'1 True x ywy = x
gcd'1 ywz yxu yxv = gcd'0 yxu yxv

gcd'2 x ywy = gcd'1 (ywy == 0) x ywy
gcd'2 yxw yxx = gcd'0 yxw yxx

The following Function with conditions
gcd 0 0 = error []
gcd x y = 
gcd' (abs x) (abs y)
where 
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd yxy yxz = gcd3 yxy yxz
gcd x y = gcd0 x y

gcd0 x y = 
gcd' (abs x) (abs y)
where 
gcd' x ywy = gcd'2 x ywy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x ywy = x
gcd'1 ywz yxu yxv = gcd'0 yxu yxv
gcd'2 x ywy = gcd'1 (ywy == 0) x ywy
gcd'2 yxw yxx = gcd'0 yxw yxx

gcd1 True yxy yxz = error []
gcd1 yyu yyv yyw = gcd0 yyv yyw

gcd2 True yxy yxz = gcd1 (yxz == 0) yxy yxz
gcd2 yyx yyy yyz = gcd0 yyy yyz

gcd3 yxy yxz = gcd2 (yxy == 0) yxy yxz
gcd3 yzu yzv = gcd0 yzu yzv

The following Function with conditions
absReal x
 | x >= 0
 = x
 | otherwise
 = `negate` x

is transformed to
absReal x = absReal2 x

absReal0 x True = `negate` x

absReal1 x True = x
absReal1 x False = absReal0 x otherwise

absReal2 x = absReal1 x (x >= 0)

The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False

The following Function with conditions
reduce x y
 | y == 0
 = error []
 | otherwise
 = x `quot` d :% (y `quot` d)
where 
d  = gcd x y

is transformed to
reduce x y = reduce2 x y

reduce2 x y = 
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
HASKELL
                      ↳ LetRed

mainModule FiniteMap
  ((intersectFM_C :: (Ord c, Ord a) => (d  ->  e  ->  b ->  FiniteMap (a,c) d  ->  FiniteMap (a,c) e  ->  FiniteMap (a,c) b) :: (Ord c, Ord a) => (d  ->  e  ->  b ->  FiniteMap (a,c) d  ->  FiniteMap (a,c) e  ->  FiniteMap (a,c) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 xyz xzu xzv xzw addToFM_C3 xyz xzu xzv xzw

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt vwx fm_l EmptyFMfm_l
deleteMax (Branch key elt vwy fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMin (Branch key elt wuw EmptyFM fm_rfm_r
deleteMin (Branch key elt wux fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vyz vzu EmptyFM(key,elt)
findMax (Branch key elt vzv vzw fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt wy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM glueBal3 fm1 EmptyFM
glueBal fm1 fm2 glueBal2 fm1 fm2

  
glueBal2 fm1 fm2 
glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where 
glueBal0 fm1 fm2 True mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2
glueBal1 fm1 fm2 True mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
glueBal1 fm1 fm2 False glueBal0 fm1 fm2 otherwise
mid_elt1 mid_elt10 vv2
mid_elt10 (vzx,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (vzy,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,vzzmid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,wuumid_key2
vv2 findMax fm1
vv3 findMin fm2

  
glueBal3 fm1 EmptyFM fm1
glueBal3 xzy xzz glueBal2 xzy xzz

  
glueBal4 EmptyFM fm2 fm2
glueBal4 yuv yuw glueBal3 yuv yuw

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM glueVBal4 fm1 EmptyFM
glueVBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuwglueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

  
glueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_l < size_r) where 
glueVBal0 yy yz zu zv zw zy zz vuu vuv vuw True glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw True mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw False glueVBal0 yy yz zu zv zw zy zz vuu vuv vuw otherwise
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw True mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zw) vuv) vuw
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw False glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_r < size_l)
size_l sizeFM (Branch yy yz zu zv zw)
size_r sizeFM (Branch zy zz vuu vuv vuw)

  
glueVBal4 fm1 EmptyFM fm1
glueVBal4 xvw xvx glueVBal3 xvw xvx

  
glueVBal5 EmptyFM fm2 fm2
glueVBal5 xvz xwu glueVBal4 xvz xwu

  intersectFM_C :: Ord a => (b  ->  d  ->  c ->  FiniteMap a b  ->  FiniteMap a d  ->  FiniteMap a c
intersectFM_C combiner fm1 EmptyFM intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 wuy left rightintersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left right)

  
intersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left right
intersectFM_C1 combiner fm1 split_key elt2 wuy left right (Maybe.isJust maybe_elt1) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
intersectFM_C0 combiner fm1 split_key elt2 wuy left right True glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 wuy left right True mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 wuy left right False intersectFM_C0 combiner fm1 split_key elt2 wuy left right otherwise
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  
intersectFM_C3 combiner EmptyFM fm2 emptyFM
intersectFM_C3 yvx yvy yvz intersectFM_C2 yvx yvy yvz

  
intersectFM_C4 combiner fm1 EmptyFM emptyFM
intersectFM_C4 ywv yww ywx intersectFM_C3 ywv yww ywx

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key lookupFM4 EmptyFM key
lookupFM (Branch key elt wuv fm_l fm_rkey_to_find lookupFM3 (Branch key elt wuv fm_l fm_r) key_to_find

  
lookupFM0 key elt wuv fm_l fm_r key_to_find True Just elt

  
lookupFM1 key elt wuv fm_l fm_r key_to_find True lookupFM fm_r key_to_find
lookupFM1 key elt wuv fm_l fm_r key_to_find False lookupFM0 key elt wuv fm_l fm_r key_to_find otherwise

  
lookupFM2 key elt wuv fm_l fm_r key_to_find True lookupFM fm_l key_to_find
lookupFM2 key elt wuv fm_l fm_r key_to_find False lookupFM1 key elt wuv fm_l fm_r key_to_find (key_to_find > key)

  
lookupFM3 (Branch key elt wuv fm_l fm_rkey_to_find lookupFM2 key elt wuv fm_l fm_r key_to_find (key_to_find < key)

  
lookupFM4 EmptyFM key Nothing
lookupFM4 yuz yvu lookupFM3 yuz yvu

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where 
double_L fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rrmkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr True double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr True single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr False mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rrmkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lrmkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)
mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr True double_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr True single_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr False mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lrmkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vyy fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l vwz fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vw vx vy vz
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key wu wv ww wx
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vwwmkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

  
mkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * size_l < size_r) where 
mkVBalBranch0 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)
mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False mkVBalBranch0 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww otherwise
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) vwv) vww
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * size_r < size_l)
size_l sizeFM (Branch vuy vuz vvu vvv vvw)
size_r sizeFM (Branch vvy vvz vwu vwv vww)

  
mkVBalBranch4 key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch4 xwy xwz xxu xxv mkVBalBranch3 xwy xwz xxu xxv

  
mkVBalBranch5 key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch5 xxx xxy xxz xyu mkVBalBranch4 xxx xxy xxz xyu

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch xz yu size yv ywsize

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key splitGT4 EmptyFM split_key
splitGT (Branch key elt xy fm_l fm_rsplit_key splitGT3 (Branch key elt xy fm_l fm_r) split_key

  
splitGT0 key elt xy fm_l fm_r split_key True fm_r

  
splitGT1 key elt xy fm_l fm_r split_key True mkVBalBranch key elt (splitGT fm_l split_key) fm_r
splitGT1 key elt xy fm_l fm_r split_key False splitGT0 key elt xy fm_l fm_r split_key otherwise

  
splitGT2 key elt xy fm_l fm_r split_key True splitGT fm_r split_key
splitGT2 key elt xy fm_l fm_r split_key False splitGT1 key elt xy fm_l fm_r split_key (split_key < key)

  
splitGT3 (Branch key elt xy fm_l fm_rsplit_key splitGT2 key elt xy fm_l fm_r split_key (split_key > key)

  
splitGT4 EmptyFM split_key emptyFM
splitGT4 xux xuy splitGT3 xux xuy

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key splitLT4 EmptyFM split_key
splitLT (Branch key elt xx fm_l fm_rsplit_key splitLT3 (Branch key elt xx fm_l fm_r) split_key

  
splitLT0 key elt xx fm_l fm_r split_key True fm_l

  
splitLT1 key elt xx fm_l fm_r split_key True mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt xx fm_l fm_r split_key False splitLT0 key elt xx fm_l fm_r split_key otherwise

  
splitLT2 key elt xx fm_l fm_r split_key True splitLT fm_l split_key
splitLT2 key elt xx fm_l fm_r split_key False splitLT1 key elt xx fm_l fm_r split_key (split_key > key)

  
splitLT3 (Branch key elt xx fm_l fm_rsplit_key splitLT2 key elt xx fm_l fm_r split_key (split_key < key)

  
splitLT4 EmptyFM split_key emptyFM
splitLT4 wzz xuu splitLT3 wzz xuu

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Let/Where Reductions:
The bindings of the following Let/Where expression
intersectFM_C1 combiner fm1 split_key elt2 wuy left right (Maybe.isJust maybe_elt1)
where 
elt1  = elt10 vv1
elt10 (Just elt1) = elt1
gts  = splitGT fm1 split_key
intersectFM_C0 combiner fm1 split_key elt2 wuy left right True = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 wuy left right True = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 wuy left right False = intersectFM_C0 combiner fm1 split_key elt2 wuy left right otherwise
lts  = splitLT fm1 split_key
maybe_elt1  = lookupFM fm1 split_key
vv1  = maybe_elt1

are unpacked to the following functions on top level
intersectFM_C2Elt10 yzw yzx (Just elt1) = elt1

intersectFM_C2Vv1 yzw yzx = intersectFM_C2Maybe_elt1 yzw yzx

intersectFM_C2Gts yzw yzx = splitGT yzw yzx

intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 wuy left right True = mkVBalBranch split_key (combiner (intersectFM_C2Elt1 yzw yzxelt2) (intersectFM_C combiner (intersectFM_C2Lts yzw yzxleft) (intersectFM_C combiner (intersectFM_C2Gts yzw yzxright)
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 wuy left right False = intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 wuy left right otherwise

intersectFM_C2Elt1 yzw yzx = intersectFM_C2Elt10 yzw yzx (intersectFM_C2Vv1 yzw yzx)

intersectFM_C2Maybe_elt1 yzw yzx = lookupFM yzw yzx

intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 wuy left right True = glueVBal (intersectFM_C combiner (intersectFM_C2Lts yzw yzxleft) (intersectFM_C combiner (intersectFM_C2Gts yzw yzxright)

intersectFM_C2Lts yzw yzx = splitLT yzw yzx

The bindings of the following Let/Where expression
glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1)
where 
glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1fm2
glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise
mid_elt1  = mid_elt10 vv2
mid_elt10 (vzx,mid_elt1) = mid_elt1
mid_elt2  = mid_elt20 vv3
mid_elt20 (vzy,mid_elt2) = mid_elt2
mid_key1  = mid_key10 vv2
mid_key10 (mid_key1,vzz) = mid_key1
mid_key2  = mid_key20 vv3
mid_key20 (mid_key2,wuu) = mid_key2
vv2  = findMax fm1
vv3  = findMin fm2

are unpacked to the following functions on top level
glueBal2Mid_key10 yzy yzz (mid_key1,vzz) = mid_key1

glueBal2Mid_elt10 yzy yzz (vzx,mid_elt1) = mid_elt1

glueBal2Mid_key1 yzy yzz = glueBal2Mid_key10 yzy yzz (glueBal2Vv2 yzy yzz)

glueBal2Mid_elt2 yzy yzz = glueBal2Mid_elt20 yzy yzz (glueBal2Vv3 yzy yzz)

glueBal2GlueBal0 yzy yzz fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 yzy yzz) (glueBal2Mid_elt1 yzy yzz) (deleteMax fm1fm2

glueBal2Vv2 yzy yzz = findMax yzy

glueBal2Mid_elt20 yzy yzz (vzy,mid_elt2) = mid_elt2

glueBal2Mid_key2 yzy yzz = glueBal2Mid_key20 yzy yzz (glueBal2Vv3 yzy yzz)

glueBal2Mid_elt1 yzy yzz = glueBal2Mid_elt10 yzy yzz (glueBal2Vv2 yzy yzz)

glueBal2Mid_key20 yzy yzz (mid_key2,wuu) = mid_key2

glueBal2GlueBal1 yzy yzz fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 yzy yzz) (glueBal2Mid_elt2 yzy yzzfm1 (deleteMin fm2)
glueBal2GlueBal1 yzy yzz fm1 fm2 False = glueBal2GlueBal0 yzy yzz fm1 fm2 otherwise

glueBal2Vv3 yzy yzz = findMin yzz

The bindings of the following Let/Where expression
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)
mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vyy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l vwz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

are unpacked to the following functions on top level
mkBalBranch6Single_R zuu zuv zuw zux (Branch key_l elt_l vwz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 zuu zuv fm_lr fm_r)

mkBalBranch6Double_L zuu zuv zuw zux fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 zuu zuv fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

mkBalBranch6Size_r zuu zuv zuw zux = sizeFM zuw

mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_r zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_l zuu zuv zuw zux)

mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_l zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_r zuu zuv zuw zux)

mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R

mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr True = mkBalBranch6Single_L zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr False = mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise

mkBalBranch6Size_l zuu zuv zuw zux = sizeFM zux

mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)

mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr True = mkBalBranch6Double_R zuu zuv zuw zux fm_L fm_R

mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)

mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R otherwise

mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr) = mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr True = mkBalBranch6Double_L zuu zuv zuw zux fm_L fm_R

mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr) = mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

mkBalBranch6Single_L zuu zuv zuw zux fm_l (Branch key_r elt_r vyy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 zuu zuv fm_l fm_rlfm_rr

mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr True = mkBalBranch6Single_R zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr False = mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise

mkBalBranch6Double_R zuu zuv zuw zux (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 zuu zuv fm_lrr fm_r)

The bindings of the following Let/Where expression
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_l < size_r)
where 
glueVBal0 yy yz zu zv zw zy zz vuu vuv vuw True = glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw False = glueVBal0 yy yz zu zv zw zy zz vuu vuv vuw otherwise
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zwvuvvuw
glueVBal2 yy yz zu zv zw zy zz vuu vuv vuw False = glueVBal1 yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch yy yz zu zv zw)
size_r  = sizeFM (Branch zy zz vuu vuv vuw)

are unpacked to the following functions on top level
glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv = sizeFM (Branch zuy zuz zvu zvv zvw)

glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True = glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv = sizeFM (Branch zvx zvy zvz zwu zwv)

glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw False = glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw otherwise

glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zwvuvvuw
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw False = glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv < glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv)

The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
where 
balance_ok  = True
left_ok  = left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key vw vx vy vz) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key
left_size  = sizeFM fm_l
right_ok  = right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key wu wv ww wx) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key
right_size  = sizeFM fm_r
unbox x = x

are unpacked to the following functions on top level
mkBranchLeft_size zww zwx zwy = sizeFM zww

mkBranchLeft_ok zww zwx zwy = mkBranchLeft_ok0 zww zwx zwy zww zwx zww

mkBranchUnbox zww zwx zwy x = x

mkBranchRight_ok0 zww zwx zwy fm_r key EmptyFM = True
mkBranchRight_ok0 zww zwx zwy fm_r key (Branch right_key wu wv ww wx) = key < mkBranchRight_ok0Smallest_right_key fm_r

mkBranchRight_ok zww zwx zwy = mkBranchRight_ok0 zww zwx zwy zwy zwx zwy

mkBranchBalance_ok zww zwx zwy = True

mkBranchLeft_ok0 zww zwx zwy fm_l key EmptyFM = True
mkBranchLeft_ok0 zww zwx zwy fm_l key (Branch left_key vw vx vy vz) = mkBranchLeft_ok0Biggest_left_key fm_l < key

mkBranchRight_size zww zwx zwy = sizeFM zwy

The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result

are unpacked to the following functions on top level
mkBranchResult zwz zxu zxv zxw = Branch zwz zxu (mkBranchUnbox zxv zwz zxw (1 + mkBranchLeft_size zxv zwz zxw + mkBranchRight_size zxv zwz zxw)) zxv zxw

The bindings of the following Let/Where expression
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * size_l < size_r)
where 
mkVBalBranch0 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)
mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False = mkVBalBranch0 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww otherwise
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvwvwvvww
mkVBalBranch2 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False = mkVBalBranch1 key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch vuy vuz vvu vvv vvw)
size_r  = sizeFM (Branch vvy vvz vwu vwv vww)

are unpacked to the following functions on top level
mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False = mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww otherwise

mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True = mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvwvwvvww
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False = mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu < mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu)

mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu = sizeFM (Branch zxx zxy zxz zyu zyv)

mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu = sizeFM (Branch zyw zyx zyy zyz zzu)

The bindings of the following Let/Where expression
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

are unpacked to the following functions on top level
mkBranchRight_ok0Smallest_right_key zzv = fst (findMin zzv)

The bindings of the following Let/Where expression
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

are unpacked to the following functions on top level
mkBranchLeft_ok0Biggest_left_key zzw = fst (findMax zzw)

The bindings of the following Let/Where expression
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise

are unpacked to the following functions on top level
reduce2Reduce0 zzx zzy x y True = x `quot` reduce2D zzx zzy :% (y `quot` reduce2D zzx zzy)

reduce2D zzx zzy = gcd zzx zzy

reduce2Reduce1 zzx zzy x y True = error []
reduce2Reduce1 zzx zzy x y False = reduce2Reduce0 zzx zzy x y otherwise

The bindings of the following Let/Where expression
gcd' (abs x) (abs y)
where 
gcd' x ywy = gcd'2 x ywy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x ywy = x
gcd'1 ywz yxu yxv = gcd'0 yxu yxv
gcd'2 x ywy = gcd'1 (ywy == 0) x ywy
gcd'2 yxw yxx = gcd'0 yxw yxx

are unpacked to the following functions on top level
gcd0Gcd' x ywy = gcd0Gcd'2 x ywy
gcd0Gcd' x y = gcd0Gcd'0 x y

gcd0Gcd'1 True x ywy = x
gcd0Gcd'1 ywz yxu yxv = gcd0Gcd'0 yxu yxv

gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y)

gcd0Gcd'2 x ywy = gcd0Gcd'1 (ywy == 0) x ywy
gcd0Gcd'2 yxw yxx = gcd0Gcd'0 yxw yxx



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
HASKELL
                          ↳ NumRed

mainModule FiniteMap
  ((intersectFM_C :: (Ord a, Ord d) => (e  ->  c  ->  b ->  FiniteMap (a,d) e  ->  FiniteMap (a,d) c  ->  FiniteMap (a,d) b) :: (Ord a, Ord d) => (e  ->  c  ->  b ->  FiniteMap (a,d) e  ->  FiniteMap (a,d) c  ->  FiniteMap (a,d) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 xyz xzu xzv xzw addToFM_C3 xyz xzu xzv xzw

  deleteMax :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMax (Branch key elt vwx fm_l EmptyFMfm_l
deleteMax (Branch key elt vwy fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt wuw EmptyFM fm_rfm_r
deleteMin (Branch key elt wux fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vyz vzu EmptyFM(key,elt)
findMax (Branch key elt vzv vzw fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt wy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM glueBal3 fm1 EmptyFM
glueBal fm1 fm2 glueBal2 fm1 fm2

  
glueBal2 fm1 fm2 glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1)

  
glueBal2GlueBal0 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key1 yzy yzz) (glueBal2Mid_elt1 yzy yzz) (deleteMax fm1) fm2

  
glueBal2GlueBal1 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key2 yzy yzz) (glueBal2Mid_elt2 yzy yzz) fm1 (deleteMin fm2)
glueBal2GlueBal1 yzy yzz fm1 fm2 False glueBal2GlueBal0 yzy yzz fm1 fm2 otherwise

  
glueBal2Mid_elt1 yzy yzz glueBal2Mid_elt10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_elt10 yzy yzz (vzx,mid_elt1mid_elt1

  
glueBal2Mid_elt2 yzy yzz glueBal2Mid_elt20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_elt20 yzy yzz (vzy,mid_elt2mid_elt2

  
glueBal2Mid_key1 yzy yzz glueBal2Mid_key10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_key10 yzy yzz (mid_key1,vzzmid_key1

  
glueBal2Mid_key2 yzy yzz glueBal2Mid_key20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_key20 yzy yzz (mid_key2,wuumid_key2

  
glueBal2Vv2 yzy yzz findMax yzy

  
glueBal2Vv3 yzy yzz findMin yzz

  
glueBal3 fm1 EmptyFM fm1
glueBal3 xzy xzz glueBal2 xzy xzz

  
glueBal4 EmptyFM fm2 fm2
glueBal4 yuv yuw glueBal3 yuv yuw

  glueVBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueVBal EmptyFM fm2 glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM glueVBal4 fm1 EmptyFM
glueVBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuwglueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

  
glueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuwglueVBal3GlueVBal2 zy zz vuu vuv vuw yy yz zu zv zw yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * glueVBal3Size_l zy zz vuu vuv vuw yy yz zu zv zw < glueVBal3Size_r zy zz vuu vuv vuw yy yz zu zv zw)

  
glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

  
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw False glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw otherwise

  
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zw) vuv) vuw
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw False glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv < glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv)

  
glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zvx zvy zvz zwu zwv)

  
glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zuy zuz zvu zvv zvw)

  
glueVBal4 fm1 EmptyFM fm1
glueVBal4 xvw xvx glueVBal3 xvw xvx

  
glueVBal5 EmptyFM fm2 fm2
glueVBal5 xvz xwu glueVBal4 xvz xwu

  intersectFM_C :: Ord b => (d  ->  c  ->  a ->  FiniteMap b d  ->  FiniteMap b c  ->  FiniteMap b a
intersectFM_C combiner fm1 EmptyFM intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 wuy left rightintersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left right)

  
intersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left rightintersectFM_C2IntersectFM_C1 fm1 split_key combiner fm1 split_key elt2 wuy left right (Maybe.isJust (intersectFM_C2Maybe_elt1 fm1 split_key))

  
intersectFM_C2Elt1 yzw yzx intersectFM_C2Elt10 yzw yzx (intersectFM_C2Vv1 yzw yzx)

  
intersectFM_C2Elt10 yzw yzx (Just elt1elt1

  
intersectFM_C2Gts yzw yzx splitGT yzw yzx

  
intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 wuy left right True glueVBal (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)

  
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 wuy left right True mkVBalBranch split_key (combiner (intersectFM_C2Elt1 yzw yzx) elt2) (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 wuy left right False intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 wuy left right otherwise

  
intersectFM_C2Lts yzw yzx splitLT yzw yzx

  
intersectFM_C2Maybe_elt1 yzw yzx lookupFM yzw yzx

  
intersectFM_C2Vv1 yzw yzx intersectFM_C2Maybe_elt1 yzw yzx

  
intersectFM_C3 combiner EmptyFM fm2 emptyFM
intersectFM_C3 yvx yvy yvz intersectFM_C2 yvx yvy yvz

  
intersectFM_C4 combiner fm1 EmptyFM emptyFM
intersectFM_C4 ywv yww ywx intersectFM_C3 ywv yww ywx

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key lookupFM4 EmptyFM key
lookupFM (Branch key elt wuv fm_l fm_rkey_to_find lookupFM3 (Branch key elt wuv fm_l fm_r) key_to_find

  
lookupFM0 key elt wuv fm_l fm_r key_to_find True Just elt

  
lookupFM1 key elt wuv fm_l fm_r key_to_find True lookupFM fm_r key_to_find
lookupFM1 key elt wuv fm_l fm_r key_to_find False lookupFM0 key elt wuv fm_l fm_r key_to_find otherwise

  
lookupFM2 key elt wuv fm_l fm_r key_to_find True lookupFM fm_l key_to_find
lookupFM2 key elt wuv fm_l fm_r key_to_find False lookupFM1 key elt wuv fm_l fm_r key_to_find (key_to_find > key)

  
lookupFM3 (Branch key elt wuv fm_l fm_rkey_to_find lookupFM2 key elt wuv fm_l fm_r key_to_find (key_to_find < key)

  
lookupFM4 EmptyFM key Nothing
lookupFM4 yuz yvu lookupFM3 yuz yvu

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 key elt fm_R fm_L key elt fm_L fm_R (mkBalBranch6Size_l key elt fm_R fm_L + mkBalBranch6Size_r key elt fm_R fm_L < 2)

  
mkBalBranch6Double_L zuu zuv zuw zux fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 zuu zuv fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R zuu zuv zuw zux (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 zuu zuv fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rrmkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr True mkBalBranch6Double_L zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr True mkBalBranch6Single_L zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr False mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rrmkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lrmkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr True mkBalBranch6Double_R zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr True mkBalBranch6Single_R zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr False mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lrmkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_l zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_r zuu zuv zuw zux)

  
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_r zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_l zuu zuv zuw zux)

  
mkBalBranch6Single_L zuu zuv zuw zux fm_l (Branch key_r elt_r vyy fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 zuu zuv fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R zuu zuv zuw zux (Branch key_l elt_l vwz fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 zuu zuv fm_lr fm_r)

  
mkBalBranch6Size_l zuu zuv zuw zux sizeFM zux

  
mkBalBranch6Size_r zuu zuv zuw zux sizeFM zuw

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_l fm_r

  
mkBranchBalance_ok zww zwx zwy True

  
mkBranchLeft_ok zww zwx zwy mkBranchLeft_ok0 zww zwx zwy zww zwx zww

  
mkBranchLeft_ok0 zww zwx zwy fm_l key EmptyFM True
mkBranchLeft_ok0 zww zwx zwy fm_l key (Branch left_key vw vx vy vzmkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key zzw fst (findMax zzw)

  
mkBranchLeft_size zww zwx zwy sizeFM zww

  
mkBranchResult zwz zxu zxv zxw Branch zwz zxu (mkBranchUnbox zxv zwz zxw (1 + mkBranchLeft_size zxv zwz zxw + mkBranchRight_size zxv zwz zxw)) zxv zxw

  
mkBranchRight_ok zww zwx zwy mkBranchRight_ok0 zww zwx zwy zwy zwx zwy

  
mkBranchRight_ok0 zww zwx zwy fm_r key EmptyFM True
mkBranchRight_ok0 zww zwx zwy fm_r key (Branch right_key wu wv ww wxkey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key zzv fst (findMin zzv)

  
mkBranchRight_size zww zwx zwy sizeFM zwy

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  a ( ->  (FiniteMap a b) (Int  ->  Int)))
mkBranchUnbox zww zwx zwy x x

  mkVBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkVBalBranch key elt EmptyFM fm_r mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vwwmkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

  
mkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vwwmkVBalBranch3MkVBalBranch2 vvy vvz vwu vwv vww vuy vuz vvu vvv vvw key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * mkVBalBranch3Size_l vvy vvz vwu vwv vww vuy vuz vvu vvv vvw < mkVBalBranch3Size_r vvy vvz vwu vwv vww vuy vuz vvu vvv vvw)

  
mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBranch 13 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

  
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww otherwise

  
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) vwv) vww
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu < mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu)

  
mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zyw zyx zyy zyz zzu)

  
mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zxx zxy zxz zyu zyv)

  
mkVBalBranch4 key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch4 xwy xwz xxu xxv mkVBalBranch3 xwy xwz xxu xxv

  
mkVBalBranch5 key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch5 xxx xxy xxz xyu mkVBalBranch4 xxx xxy xxz xyu

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch xz yu size yv ywsize

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key splitGT4 EmptyFM split_key
splitGT (Branch key elt xy fm_l fm_rsplit_key splitGT3 (Branch key elt xy fm_l fm_r) split_key

  
splitGT0 key elt xy fm_l fm_r split_key True fm_r

  
splitGT1 key elt xy fm_l fm_r split_key True mkVBalBranch key elt (splitGT fm_l split_key) fm_r
splitGT1 key elt xy fm_l fm_r split_key False splitGT0 key elt xy fm_l fm_r split_key otherwise

  
splitGT2 key elt xy fm_l fm_r split_key True splitGT fm_r split_key
splitGT2 key elt xy fm_l fm_r split_key False splitGT1 key elt xy fm_l fm_r split_key (split_key < key)

  
splitGT3 (Branch key elt xy fm_l fm_rsplit_key splitGT2 key elt xy fm_l fm_r split_key (split_key > key)

  
splitGT4 EmptyFM split_key emptyFM
splitGT4 xux xuy splitGT3 xux xuy

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key splitLT4 EmptyFM split_key
splitLT (Branch key elt xx fm_l fm_rsplit_key splitLT3 (Branch key elt xx fm_l fm_r) split_key

  
splitLT0 key elt xx fm_l fm_r split_key True fm_l

  
splitLT1 key elt xx fm_l fm_r split_key True mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt xx fm_l fm_r split_key False splitLT0 key elt xx fm_l fm_r split_key otherwise

  
splitLT2 key elt xx fm_l fm_r split_key True splitLT fm_l split_key
splitLT2 key elt xx fm_l fm_r split_key False splitLT1 key elt xx fm_l fm_r split_key (split_key > key)

  
splitLT3 (Branch key elt xx fm_l fm_rsplit_key splitLT2 key elt xx fm_l fm_r split_key (split_key < key)

  
splitLT4 EmptyFM split_key emptyFM
splitLT4 wzz xuu splitLT3 wzz xuu

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
HASKELL
                              ↳ Narrow

mainModule FiniteMap
  (intersectFM_C :: (Ord b, Ord d) => (a  ->  e  ->  c ->  FiniteMap (d,b) a  ->  FiniteMap (d,b) e  ->  FiniteMap (d,b) c)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord b => FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 xyz xzu xzv xzw addToFM_C3 xyz xzu xzv xzw

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt vwx fm_l EmptyFMfm_l
deleteMax (Branch key elt vwy fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt wuw EmptyFM fm_rfm_r
deleteMin (Branch key elt wux fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vyz vzu EmptyFM(key,elt)
findMax (Branch key elt vzv vzw fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  a  ->  b  ->  b ->  b  ->  FiniteMap c a  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt wy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM glueBal3 fm1 EmptyFM
glueBal fm1 fm2 glueBal2 fm1 fm2

  
glueBal2 fm1 fm2 glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1)

  
glueBal2GlueBal0 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key1 yzy yzz) (glueBal2Mid_elt1 yzy yzz) (deleteMax fm1) fm2

  
glueBal2GlueBal1 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key2 yzy yzz) (glueBal2Mid_elt2 yzy yzz) fm1 (deleteMin fm2)
glueBal2GlueBal1 yzy yzz fm1 fm2 False glueBal2GlueBal0 yzy yzz fm1 fm2 otherwise

  
glueBal2Mid_elt1 yzy yzz glueBal2Mid_elt10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_elt10 yzy yzz (vzx,mid_elt1mid_elt1

  
glueBal2Mid_elt2 yzy yzz glueBal2Mid_elt20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_elt20 yzy yzz (vzy,mid_elt2mid_elt2

  
glueBal2Mid_key1 yzy yzz glueBal2Mid_key10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_key10 yzy yzz (mid_key1,vzzmid_key1

  
glueBal2Mid_key2 yzy yzz glueBal2Mid_key20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_key20 yzy yzz (mid_key2,wuumid_key2

  
glueBal2Vv2 yzy yzz findMax yzy

  
glueBal2Vv3 yzy yzz findMin yzz

  
glueBal3 fm1 EmptyFM fm1
glueBal3 xzy xzz glueBal2 xzy xzz

  
glueBal4 EmptyFM fm2 fm2
glueBal4 yuv yuw glueBal3 yuv yuw

  glueVBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueVBal EmptyFM fm2 glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM glueVBal4 fm1 EmptyFM
glueVBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuwglueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

  
glueVBal3 (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuwglueVBal3GlueVBal2 zy zz vuu vuv vuw yy yz zu zv zw yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * glueVBal3Size_l zy zz vuu vuv vuw yy yz zu zv zw < glueVBal3Size_r zy zz vuu vuv vuw yy yz zu zv zw)

  
glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True glueBal (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)

  
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True mkBalBranch yy yz zv (glueVBal zw (Branch zy zz vuu vuv vuw))
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw False glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw otherwise

  
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw True mkBalBranch zy zz (glueVBal (Branch yy yz zu zv zw) vuv) vuw
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw False glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv < glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv)

  
glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zvx zvy zvz zwu zwv)

  
glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zuy zuz zvu zvv zvw)

  
glueVBal4 fm1 EmptyFM fm1
glueVBal4 xvw xvx glueVBal3 xvw xvx

  
glueVBal5 EmptyFM fm2 fm2
glueVBal5 xvz xwu glueVBal4 xvz xwu

  intersectFM_C :: Ord a => (c  ->  d  ->  b ->  FiniteMap a c  ->  FiniteMap a d  ->  FiniteMap a b
intersectFM_C combiner fm1 EmptyFM intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 wuy left rightintersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left right)

  
intersectFM_C2 combiner fm1 (Branch split_key elt2 wuy left rightintersectFM_C2IntersectFM_C1 fm1 split_key combiner fm1 split_key elt2 wuy left right (Maybe.isJust (intersectFM_C2Maybe_elt1 fm1 split_key))

  
intersectFM_C2Elt1 yzw yzx intersectFM_C2Elt10 yzw yzx (intersectFM_C2Vv1 yzw yzx)

  
intersectFM_C2Elt10 yzw yzx (Just elt1elt1

  
intersectFM_C2Gts yzw yzx splitGT yzw yzx

  
intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 wuy left right True glueVBal (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)

  
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 wuy left right True mkVBalBranch split_key (combiner (intersectFM_C2Elt1 yzw yzx) elt2) (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 wuy left right False intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 wuy left right otherwise

  
intersectFM_C2Lts yzw yzx splitLT yzw yzx

  
intersectFM_C2Maybe_elt1 yzw yzx lookupFM yzw yzx

  
intersectFM_C2Vv1 yzw yzx intersectFM_C2Maybe_elt1 yzw yzx

  
intersectFM_C3 combiner EmptyFM fm2 emptyFM
intersectFM_C3 yvx yvy yvz intersectFM_C2 yvx yvy yvz

  
intersectFM_C4 combiner fm1 EmptyFM emptyFM
intersectFM_C4 ywv yww ywx intersectFM_C3 ywv yww ywx

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key lookupFM4 EmptyFM key
lookupFM (Branch key elt wuv fm_l fm_rkey_to_find lookupFM3 (Branch key elt wuv fm_l fm_r) key_to_find

  
lookupFM0 key elt wuv fm_l fm_r key_to_find True Just elt

  
lookupFM1 key elt wuv fm_l fm_r key_to_find True lookupFM fm_r key_to_find
lookupFM1 key elt wuv fm_l fm_r key_to_find False lookupFM0 key elt wuv fm_l fm_r key_to_find otherwise

  
lookupFM2 key elt wuv fm_l fm_r key_to_find True lookupFM fm_l key_to_find
lookupFM2 key elt wuv fm_l fm_r key_to_find False lookupFM1 key elt wuv fm_l fm_r key_to_find (key_to_find > key)

  
lookupFM3 (Branch key elt wuv fm_l fm_rkey_to_find lookupFM2 key elt wuv fm_l fm_r key_to_find (key_to_find < key)

  
lookupFM4 EmptyFM key Nothing
lookupFM4 yuz yvu lookupFM3 yuz yvu

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 key elt fm_R fm_L key elt fm_L fm_R (mkBalBranch6Size_l key elt fm_R fm_L + mkBalBranch6Size_r key elt fm_R fm_L < Pos (Succ (Succ Zero)))

  
mkBalBranch6Double_L zuu zuv zuw zux fm_l (Branch key_r elt_r vxz (Branch key_rl elt_rl vyu fm_rll fm_rlr) fm_rrmkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) key_rl elt_rl (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) zuu zuv fm_l fm_rll) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R zuu zuv zuw zux (Branch key_l elt_l vxu fm_ll (Branch key_lr elt_lr vxv fm_lrl fm_lrr)) fm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) key_lr elt_lr (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) key_l elt_l fm_ll fm_lrl) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) zuu zuv fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rrmkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr True mkBalBranch6Double_L zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr True mkBalBranch6Single_L zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr False mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch vyv vyw vyx fm_rl fm_rrmkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R vyv vyw vyx fm_rl fm_rr (sizeFM fm_rl < Pos (Succ (Succ Zero)) * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lrmkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr True mkBalBranch6Double_R zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr True mkBalBranch6Single_R zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr False mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch vxw vxx vxy fm_ll fm_lrmkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R vxw vxx vxy fm_ll fm_lr (sizeFM fm_lr < Pos (Succ (Succ Zero)) * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R True mkBranch (Pos (Succ (Succ Zero))) key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_l zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_r zuu zuv zuw zux)

  
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R True mkBranch (Pos (Succ Zero)) key elt fm_L fm_R
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_r zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_l zuu zuv zuw zux)

  
mkBalBranch6Single_L zuu zuv zuw zux fm_l (Branch key_r elt_r vyy fm_rl fm_rrmkBranch (Pos (Succ (Succ (Succ Zero)))) key_r elt_r (mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) zuu zuv fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R zuu zuv zuw zux (Branch key_l elt_l vwz fm_ll fm_lrfm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) key_l elt_l fm_ll (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) zuu zuv fm_lr fm_r)

  
mkBalBranch6Size_l zuu zuv zuw zux sizeFM zux

  
mkBalBranch6Size_r zuu zuv zuw zux sizeFM zuw

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_l fm_r

  
mkBranchBalance_ok zww zwx zwy True

  
mkBranchLeft_ok zww zwx zwy mkBranchLeft_ok0 zww zwx zwy zww zwx zww

  
mkBranchLeft_ok0 zww zwx zwy fm_l key EmptyFM True
mkBranchLeft_ok0 zww zwx zwy fm_l key (Branch left_key vw vx vy vzmkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key zzw fst (findMax zzw)

  
mkBranchLeft_size zww zwx zwy sizeFM zww

  
mkBranchResult zwz zxu zxv zxw Branch zwz zxu (mkBranchUnbox zxv zwz zxw (Pos (Succ Zero+ mkBranchLeft_size zxv zwz zxw + mkBranchRight_size zxv zwz zxw)) zxv zxw

  
mkBranchRight_ok zww zwx zwy mkBranchRight_ok0 zww zwx zwy zwy zwx zwy

  
mkBranchRight_ok0 zww zwx zwy fm_r key EmptyFM True
mkBranchRight_ok0 zww zwx zwy fm_r key (Branch right_key wu wv ww wxkey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key zzv fst (findMin zzv)

  
mkBranchRight_size zww zwx zwy sizeFM zwy

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  a ( ->  (FiniteMap a b) (Int  ->  Int)))
mkBranchUnbox zww zwx zwy x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vwwmkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

  
mkVBalBranch3 key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vwwmkVBalBranch3MkVBalBranch2 vvy vvz vwu vwv vww vuy vuz vvu vvv vvw key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * mkVBalBranch3Size_l vvy vvz vwu vwv vww vuy vuz vvu vvv vvw < mkVBalBranch3Size_r vvy vvz vwu vwv vww vuy vuz vvu vvv vvw)

  
mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) key elt (Branch vuy vuz vvu vvv vvw) (Branch vvy vvz vwu vwv vww)

  
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBalBranch vuy vuz vvv (mkVBalBranch key elt vvw (Branch vvy vvz vwu vwv vww))
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww otherwise

  
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww True mkBalBranch vvy vvz (mkVBalBranch key elt (Branch vuy vuz vvu vvv vvw) vwv) vww
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww False mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vuy vuz vvu vvv vvw vvy vvz vwu vwv vww (sIZE_RATIO * mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu < mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu)

  
mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zyw zyx zyy zyz zzu)

  
mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zxx zxy zxz zyu zyv)

  
mkVBalBranch4 key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch4 xwy xwz xxu xxv mkVBalBranch3 xwy xwz xxu xxv

  
mkVBalBranch5 key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch5 xxx xxy xxz xyu mkVBalBranch4 xxx xxy xxz xyu

  sIZE_RATIO :: Int
sIZE_RATIO Pos (Succ (Succ (Succ (Succ (Succ Zero)))))

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM Pos Zero
sizeFM (Branch xz yu size yv ywsize

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key splitGT4 EmptyFM split_key
splitGT (Branch key elt xy fm_l fm_rsplit_key splitGT3 (Branch key elt xy fm_l fm_r) split_key

  
splitGT0 key elt xy fm_l fm_r split_key True fm_r

  
splitGT1 key elt xy fm_l fm_r split_key True mkVBalBranch key elt (splitGT fm_l split_key) fm_r
splitGT1 key elt xy fm_l fm_r split_key False splitGT0 key elt xy fm_l fm_r split_key otherwise

  
splitGT2 key elt xy fm_l fm_r split_key True splitGT fm_r split_key
splitGT2 key elt xy fm_l fm_r split_key False splitGT1 key elt xy fm_l fm_r split_key (split_key < key)

  
splitGT3 (Branch key elt xy fm_l fm_rsplit_key splitGT2 key elt xy fm_l fm_r split_key (split_key > key)

  
splitGT4 EmptyFM split_key emptyFM
splitGT4 xux xuy splitGT3 xux xuy

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key splitLT4 EmptyFM split_key
splitLT (Branch key elt xx fm_l fm_rsplit_key splitLT3 (Branch key elt xx fm_l fm_r) split_key

  
splitLT0 key elt xx fm_l fm_r split_key True fm_l

  
splitLT1 key elt xx fm_l fm_r split_key True mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt xx fm_l fm_r split_key False splitLT0 key elt xx fm_l fm_r split_key otherwise

  
splitLT2 key elt xx fm_l fm_r split_key True splitLT fm_l split_key
splitLT2 key elt xx fm_l fm_r split_key False splitLT1 key elt xx fm_l fm_r split_key (split_key > key)

  
splitLT3 (Branch key elt xx fm_l fm_rsplit_key splitLT2 key elt xx fm_l fm_r split_key (split_key < key)

  
splitLT4 EmptyFM split_key emptyFM
splitLT4 wzz xuu splitLT3 wzz xuu

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt (Pos (Succ Zero)) emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Haskell To QDPs


↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_elt20(zzz470, zzz471, zzz472, zzz473, zzz474, zzz475, zzz476, zzz477, zzz478, zzz479, zzz480, zzz481, zzz482, Branch(zzz4830, zzz4831, zzz4832, zzz4833, zzz4834), zzz484, h, ba) → new_glueBal2Mid_elt20(zzz470, zzz471, zzz472, zzz473, zzz474, zzz475, zzz476, zzz477, zzz478, zzz479, zzz4830, zzz4831, zzz4832, zzz4833, zzz4834, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_key20(zzz454, zzz455, zzz456, zzz457, zzz458, zzz459, zzz460, zzz461, zzz462, zzz463, zzz464, zzz465, zzz466, Branch(zzz4670, zzz4671, zzz4672, zzz4673, zzz4674), zzz468, h, ba) → new_glueBal2Mid_key20(zzz454, zzz455, zzz456, zzz457, zzz458, zzz459, zzz460, zzz461, zzz462, zzz463, zzz4670, zzz4671, zzz4672, zzz4673, zzz4674, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_elt10(zzz502, zzz503, zzz504, zzz505, zzz506, zzz507, zzz508, zzz509, zzz510, zzz511, zzz512, zzz513, zzz514, zzz515, Branch(zzz5160, zzz5161, zzz5162, zzz5163, zzz5164), h, ba) → new_glueBal2Mid_elt10(zzz502, zzz503, zzz504, zzz505, zzz506, zzz507, zzz508, zzz509, zzz510, zzz511, zzz5160, zzz5161, zzz5162, zzz5163, zzz5164, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_key10(zzz486, zzz487, zzz488, zzz489, zzz490, zzz491, zzz492, zzz493, zzz494, zzz495, zzz496, zzz497, zzz498, zzz499, Branch(zzz5000, zzz5001, zzz5002, zzz5003, zzz5004), h, ba) → new_glueBal2Mid_key10(zzz486, zzz487, zzz488, zzz489, zzz490, zzz491, zzz492, zzz493, zzz494, zzz495, zzz5000, zzz5001, zzz5002, zzz5003, zzz5004, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primEqNat(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat(zzz50000, zzz40000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primCmpNat(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat(zzz190000, zzz1970000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMinusNat(Succ(zzz297200), Succ(zzz37000)) → new_primMinusNat(zzz297200, zzz37000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primPlusNat(Succ(zzz26700), Succ(zzz4001000)) → new_primPlusNat(zzz26700, zzz4001000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMulNat(Succ(zzz500100), Succ(zzz400100)) → new_primMulNat(zzz500100, Succ(zzz400100))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_esEs0(:(zzz5000, zzz5001), :(zzz4000, zzz4001), app(app(ty_@2, fh), ga)) → new_esEs3(zzz5000, zzz4000, fh, ga)
new_esEs1(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, gb), gc), gd)) → new_esEs(zzz5000, zzz4000, gb, gc, gd)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, app(ty_[], cg), cf) → new_esEs0(zzz5001, zzz4001, cg)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, ba, app(ty_Maybe, bf)) → new_esEs1(zzz5002, zzz4002, bf)
new_esEs2(Left(zzz5000), Left(zzz4000), app(app(ty_@2, bac), bad), hf) → new_esEs3(zzz5000, zzz4000, bac, bad)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, ba, app(ty_[], be)) → new_esEs0(zzz5002, zzz4002, be)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), app(app(app(ty_@3, bda), bdb), bdc), bdd) → new_esEs(zzz5000, zzz4000, bda, bdb, bdc)
new_esEs0(:(zzz5000, zzz5001), :(zzz4000, zzz4001), app(app(app(ty_@3, eh), fa), fb)) → new_esEs(zzz5000, zzz4000, eh, fa, fb)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), app(app(app(ty_@3, df), dg), dh), ba, cf) → new_esEs(zzz5000, zzz4000, df, dg, dh)
new_esEs1(Just(zzz5000), Just(zzz4000), app(ty_[], ge)) → new_esEs0(zzz5000, zzz4000, ge)
new_esEs2(Left(zzz5000), Left(zzz4000), app(app(ty_Either, baa), bab), hf) → new_esEs2(zzz5000, zzz4000, baa, bab)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), app(ty_Maybe, bdf), bdd) → new_esEs1(zzz5000, zzz4000, bdf)
new_esEs2(Right(zzz5000), Right(zzz4000), bae, app(app(ty_@2, bbe), bbf)) → new_esEs3(zzz5000, zzz4000, bbe, bbf)
new_esEs2(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, hc), hd), he), hf) → new_esEs(zzz5000, zzz4000, hc, hd, he)
new_esEs2(Right(zzz5000), Right(zzz4000), bae, app(app(app(ty_@3, baf), bag), bah)) → new_esEs(zzz5000, zzz4000, baf, bag, bah)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, app(app(ty_Either, db), dc), cf) → new_esEs2(zzz5001, zzz4001, db, dc)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, ba, app(app(ty_@2, ca), cb)) → new_esEs3(zzz5002, zzz4002, ca, cb)
new_esEs2(Left(zzz5000), Left(zzz4000), app(ty_Maybe, hh), hf) → new_esEs1(zzz5000, zzz4000, hh)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), app(ty_Maybe, eb), ba, cf) → new_esEs1(zzz5000, zzz4000, eb)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bbg, app(app(app(ty_@3, bbh), bca), bcb)) → new_esEs(zzz5001, zzz4001, bbh, bca, bcb)
new_esEs1(Just(zzz5000), Just(zzz4000), app(app(ty_Either, gg), gh)) → new_esEs2(zzz5000, zzz4000, gg, gh)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bbg, app(app(ty_@2, bcg), bch)) → new_esEs3(zzz5001, zzz4001, bcg, bch)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, app(ty_Maybe, da), cf) → new_esEs1(zzz5001, zzz4001, da)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bbg, app(ty_Maybe, bcd)) → new_esEs1(zzz5001, zzz4001, bcd)
new_esEs0(:(zzz5000, zzz5001), :(zzz4000, zzz4001), app(ty_Maybe, fd)) → new_esEs1(zzz5000, zzz4000, fd)
new_esEs1(Just(zzz5000), Just(zzz4000), app(app(ty_@2, ha), hb)) → new_esEs3(zzz5000, zzz4000, ha, hb)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), app(app(ty_@2, ee), ef), ba, cf) → new_esEs3(zzz5000, zzz4000, ee, ef)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, ba, app(app(ty_Either, bg), bh)) → new_esEs2(zzz5002, zzz4002, bg, bh)
new_esEs0(:(zzz5000, zzz5001), :(zzz4000, zzz4001), app(app(ty_Either, ff), fg)) → new_esEs2(zzz5000, zzz4000, ff, fg)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, app(app(app(ty_@3, cc), cd), ce), cf) → new_esEs(zzz5001, zzz4001, cc, cd, ce)
new_esEs2(Right(zzz5000), Right(zzz4000), bae, app(ty_[], bba)) → new_esEs0(zzz5000, zzz4000, bba)
new_esEs2(Right(zzz5000), Right(zzz4000), bae, app(app(ty_Either, bbc), bbd)) → new_esEs2(zzz5000, zzz4000, bbc, bbd)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), app(app(ty_@2, bea), beb), bdd) → new_esEs3(zzz5000, zzz4000, bea, beb)
new_esEs1(Just(zzz5000), Just(zzz4000), app(ty_Maybe, gf)) → new_esEs1(zzz5000, zzz4000, gf)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), app(app(ty_Either, ec), ed), ba, cf) → new_esEs2(zzz5000, zzz4000, ec, ed)
new_esEs2(Right(zzz5000), Right(zzz4000), bae, app(ty_Maybe, bbb)) → new_esEs1(zzz5000, zzz4000, bbb)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bbg, app(ty_[], bcc)) → new_esEs0(zzz5001, zzz4001, bcc)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), app(ty_[], ea), ba, cf) → new_esEs0(zzz5000, zzz4000, ea)
new_esEs0(:(zzz5000, zzz5001), :(zzz4000, zzz4001), app(ty_[], fc)) → new_esEs0(zzz5000, zzz4000, fc)
new_esEs2(Left(zzz5000), Left(zzz4000), app(ty_[], hg), hf) → new_esEs0(zzz5000, zzz4000, hg)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bbg, app(app(ty_Either, bce), bcf)) → new_esEs2(zzz5001, zzz4001, bce, bcf)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), app(app(ty_Either, bdg), bdh), bdd) → new_esEs2(zzz5000, zzz4000, bdg, bdh)
new_esEs3(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), app(ty_[], bde), bdd) → new_esEs0(zzz5000, zzz4000, bde)
new_esEs0(:(zzz5000, zzz5001), :(zzz4000, zzz4001), eg) → new_esEs0(zzz5001, zzz4001, eg)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, ba, app(app(app(ty_@3, bb), bc), bd)) → new_esEs(zzz5002, zzz4002, bb, bc, bd)
new_esEs(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), h, app(app(ty_@2, dd), de), cf) → new_esEs3(zzz5001, zzz4001, dd, de)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_compare22(@2(zzz1900, Right(zzz19010)), @2(zzz19700, Right(zzz197010)), False, bab, app(app(ty_Either, bea), app(ty_[], bef))) → new_ltEs1(zzz19010, zzz197010, bef)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), app(ty_Maybe, bbe), bbf) → new_lt(zzz19010, zzz197010, bbe)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), app(app(ty_@2, bcc), bcd), bbf) → new_lt2(zzz19010, zzz197010, bcc, bcd)
new_ltEs3(Left(zzz19010), Left(zzz197010), app(app(ty_Either, bdg), bdh), bch) → new_ltEs3(zzz19010, zzz197010, bdg, bdh)
new_compare2(zzz1900, zzz19700, he, hf, hg) → new_compare21(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, he, hf, hg), he, hf, hg)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bac, app(ty_Maybe, bad)) → new_ltEs(zzz19011, zzz197011, bad)
new_compare22(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, app(ty_Maybe, hd), bfc) → new_compare20(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, hd), hd)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), cb), app(ty_[], cg))) → new_ltEs1(zzz19012, zzz197012, cg)
new_ltEs3(Left(zzz19010), Left(zzz197010), app(ty_Maybe, bcg), bch) → new_ltEs(zzz19010, zzz197010, bcg)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), app(app(ty_@2, fd), ff), cb, df) → new_lt2(zzz19010, zzz197010, fd, ff)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, app(ty_Maybe, eg)), cb), df)) → new_lt(zzz19010, zzz197010, eg)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, app(app(ty_Either, bce), bcf)), bbf)) → new_lt3(zzz19010, zzz197010, bce, bcf)
new_lt1(:(zzz19000, zzz19001), :(zzz197000, zzz197001), gb) → new_primCompAux(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, gb), gb)
new_ltEs3(Right(zzz19010), Right(zzz197010), bea, app(app(app(ty_@3, bec), bed), bee)) → new_ltEs0(zzz19010, zzz197010, bec, bed, bee)
new_compare3(zzz1900, zzz19700, hh, baa) → new_compare22(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, hh, baa), hh, baa)
new_ltEs(Just(zzz19010), Just(zzz197010), app(app(ty_Either, bg), bh)) → new_ltEs3(zzz19010, zzz197010, bg, bh)
new_primCompAux(zzz19000, zzz197000, zzz316, app(ty_[], gg)) → new_compare(zzz19000, zzz197000, gg)
new_compare22(@2(:(zzz19000, zzz19001), zzz1901), @2(:(zzz197000, zzz197001), zzz19701), False, app(ty_[], gb), bfc) → new_compare(zzz19001, zzz197001, gb)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), app(app(ty_Either, ee), ef)), df)) → new_lt3(zzz19011, zzz197011, ee, ef)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, bac), app(app(app(ty_@3, bae), baf), bag))) → new_ltEs0(zzz19011, zzz197011, bae, baf, bag)
new_lt(zzz1900, zzz19700, hd) → new_compare20(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, hd), hd)
new_lt1(:(zzz19000, zzz19001), :(zzz197000, zzz197001), gb) → new_compare(zzz19001, zzz197001, gb)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), app(ty_Maybe, de)), df)) → new_lt(zzz19011, zzz197011, de)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, app(app(ty_Either, fg), fh)), cb), df)) → new_lt3(zzz19010, zzz197010, fg, fh)
new_ltEs3(Right(zzz19010), Right(zzz197010), bea, app(app(ty_Either, bfa), bfb)) → new_ltEs3(zzz19010, zzz197010, bfa, bfb)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, app(app(ty_@2, ec), ed), df) → new_lt2(zzz19011, zzz197011, ec, ed)
new_compare22(@2(zzz1900, Just(zzz19010)), @2(zzz19700, Just(zzz197010)), False, bab, app(ty_Maybe, app(ty_[], bd))) → new_ltEs1(zzz19010, zzz197010, bd)
new_lt0(zzz1900, zzz19700, he, hf, hg) → new_compare21(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, he, hf, hg), he, hf, hg)
new_compare22(@2(zzz1900, Right(zzz19010)), @2(zzz19700, Right(zzz197010)), False, bab, app(app(ty_Either, bea), app(app(ty_@2, beg), beh))) → new_ltEs2(zzz19010, zzz197010, beg, beh)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, app(app(app(ty_@3, eh), fa), fb)), cb), df)) → new_lt0(zzz19010, zzz197010, eh, fa, fb)
new_ltEs(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, ba), bb), bc)) → new_ltEs0(zzz19010, zzz197010, ba, bb, bc)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), app(ty_[], fc), cb, df) → new_lt1(zzz19010, zzz197010, fc)
new_compare22(@2(zzz1900, Left(zzz19010)), @2(zzz19700, Left(zzz197010)), False, bab, app(app(ty_Either, app(ty_Maybe, bcg)), bch)) → new_ltEs(zzz19010, zzz197010, bcg)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, app(ty_Maybe, bbe)), bbf)) → new_lt(zzz19010, zzz197010, bbe)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, cb, app(app(app(ty_@3, cd), ce), cf)) → new_ltEs0(zzz19012, zzz197012, cd, ce, cf)
new_compare23(zzz1900, zzz19700, False, bfd, bfe) → new_ltEs3(zzz1900, zzz19700, bfd, bfe)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, cb, app(ty_[], cg)) → new_ltEs1(zzz19012, zzz197012, cg)
new_compare22(@2(zzz1900, Just(zzz19010)), @2(zzz19700, Just(zzz197010)), False, bab, app(ty_Maybe, app(app(app(ty_@3, ba), bb), bc))) → new_ltEs0(zzz19010, zzz197010, ba, bb, bc)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), app(app(app(ty_@3, bbg), bbh), bca), bbf) → new_lt0(zzz19010, zzz197010, bbg, bbh, bca)
new_compare22(@2(:(zzz19000, zzz19001), zzz1901), @2(:(zzz197000, zzz197001), zzz19701), False, app(ty_[], gb), bfc) → new_primCompAux(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, gb), gb)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, cb, app(app(ty_@2, da), db)) → new_ltEs2(zzz19012, zzz197012, da, db)
new_primCompAux(zzz19000, zzz197000, zzz316, app(ty_Maybe, gc)) → new_compare1(zzz19000, zzz197000, gc)
new_ltEs(Just(zzz19010), Just(zzz197010), app(ty_[], bd)) → new_ltEs1(zzz19010, zzz197010, bd)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bac, app(ty_[], bah)) → new_ltEs1(zzz19011, zzz197011, bah)
new_ltEs3(Left(zzz19010), Left(zzz197010), app(ty_[], bdd), bch) → new_ltEs1(zzz19010, zzz197010, bdd)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), cb), app(app(app(ty_@3, cd), ce), cf))) → new_ltEs0(zzz19012, zzz197012, cd, ce, cf)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, cb, app(ty_Maybe, cc)) → new_ltEs(zzz19012, zzz197012, cc)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, bac), app(ty_Maybe, bad))) → new_ltEs(zzz19011, zzz197011, bad)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bac, app(app(app(ty_@3, bae), baf), bag)) → new_ltEs0(zzz19011, zzz197011, bae, baf, bag)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), app(app(ty_Either, fg), fh), cb, df) → new_lt3(zzz19010, zzz197010, fg, fh)
new_compare22(@2(zzz1900, Just(zzz19010)), @2(zzz19700, Just(zzz197010)), False, bab, app(ty_Maybe, app(app(ty_Either, bg), bh))) → new_ltEs3(zzz19010, zzz197010, bg, bh)
new_compare22(@2(zzz1900, Left(zzz19010)), @2(zzz19700, Left(zzz197010)), False, bab, app(app(ty_Either, app(ty_[], bdd)), bch)) → new_ltEs1(zzz19010, zzz197010, bdd)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, app(ty_[], eb), df) → new_lt1(zzz19011, zzz197011, eb)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bac, app(app(ty_Either, bbc), bbd)) → new_ltEs3(zzz19011, zzz197011, bbc, bbd)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), app(ty_[], eb)), df)) → new_lt1(zzz19011, zzz197011, eb)
new_compare22(@2(zzz1900, Just(zzz19010)), @2(zzz19700, Just(zzz197010)), False, bab, app(ty_Maybe, app(ty_Maybe, h))) → new_ltEs(zzz19010, zzz197010, h)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), app(ty_[], bcb), bbf) → new_lt1(zzz19010, zzz197010, bcb)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, cb, app(app(ty_Either, dc), dd)) → new_ltEs3(zzz19012, zzz197012, dc, dd)
new_compare22(@2(zzz1900, Just(zzz19010)), @2(zzz19700, Just(zzz197010)), False, bab, app(ty_Maybe, app(app(ty_@2, be), bf))) → new_ltEs2(zzz19010, zzz197010, be, bf)
new_compare22(@2(zzz1900, Left(zzz19010)), @2(zzz19700, Left(zzz197010)), False, bab, app(app(ty_Either, app(app(ty_@2, bde), bdf)), bch)) → new_ltEs2(zzz19010, zzz197010, bde, bdf)
new_compare22(@2(zzz1900, Right(zzz19010)), @2(zzz19700, Right(zzz197010)), False, bab, app(app(ty_Either, bea), app(ty_Maybe, beb))) → new_ltEs(zzz19010, zzz197010, beb)
new_compare22(@2(zzz1900, Right(zzz19010)), @2(zzz19700, Right(zzz197010)), False, bab, app(app(ty_Either, bea), app(app(ty_Either, bfa), bfb))) → new_ltEs3(zzz19010, zzz197010, bfa, bfb)
new_primCompAux(zzz19000, zzz197000, zzz316, app(app(ty_@2, gh), ha)) → new_compare3(zzz19000, zzz197000, gh, ha)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), app(app(app(ty_@3, eh), fa), fb), cb, df) → new_lt0(zzz19010, zzz197010, eh, fa, fb)
new_ltEs1(zzz1901, zzz19701, ga) → new_compare(zzz1901, zzz19701, ga)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), cb), app(app(ty_Either, dc), dd))) → new_ltEs3(zzz19012, zzz197012, dc, dd)
new_compare22(@2(zzz1900, Right(zzz19010)), @2(zzz19700, Right(zzz197010)), False, bab, app(app(ty_Either, bea), app(app(app(ty_@3, bec), bed), bee))) → new_ltEs0(zzz19010, zzz197010, bec, bed, bee)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), app(app(ty_Either, bce), bcf), bbf) → new_lt3(zzz19010, zzz197010, bce, bcf)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), app(app(ty_@2, ec), ed)), df)) → new_lt2(zzz19011, zzz197011, ec, ed)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, app(ty_[], fc)), cb), df)) → new_lt1(zzz19010, zzz197010, fc)
new_ltEs(Just(zzz19010), Just(zzz197010), app(ty_Maybe, h)) → new_ltEs(zzz19010, zzz197010, h)
new_compare22(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, bab, app(ty_[], ga)) → new_compare(zzz1901, zzz19701, ga)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, bac), app(app(ty_@2, bba), bbb))) → new_ltEs2(zzz19011, zzz197011, bba, bbb)
new_ltEs3(Right(zzz19010), Right(zzz197010), bea, app(app(ty_@2, beg), beh)) → new_ltEs2(zzz19010, zzz197010, beg, beh)
new_compare22(@2(zzz1900, Left(zzz19010)), @2(zzz19700, Left(zzz197010)), False, bab, app(app(ty_Either, app(app(ty_Either, bdg), bdh)), bch)) → new_ltEs3(zzz19010, zzz197010, bdg, bdh)
new_ltEs(Just(zzz19010), Just(zzz197010), app(app(ty_@2, be), bf)) → new_ltEs2(zzz19010, zzz197010, be, bf)
new_lt3(zzz1900, zzz19700, bfd, bfe) → new_compare23(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bfd, bfe), bfd, bfe)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, bac), app(app(ty_Either, bbc), bbd))) → new_ltEs3(zzz19011, zzz197011, bbc, bbd)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, app(app(app(ty_@3, dg), dh), ea), df) → new_lt0(zzz19011, zzz197011, dg, dh, ea)
new_primCompAux(zzz19000, zzz197000, zzz316, app(app(ty_Either, hb), hc)) → new_compare4(zzz19000, zzz197000, hb, hc)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, app(app(ty_@2, bcc), bcd)), bbf)) → new_lt2(zzz19010, zzz197010, bcc, bcd)
new_ltEs3(Right(zzz19010), Right(zzz197010), bea, app(ty_[], bef)) → new_ltEs1(zzz19010, zzz197010, bef)
new_ltEs3(Left(zzz19010), Left(zzz197010), app(app(ty_@2, bde), bdf), bch) → new_ltEs2(zzz19010, zzz197010, bde, bdf)
new_ltEs2(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bac, app(app(ty_@2, bba), bbb)) → new_ltEs2(zzz19011, zzz197011, bba, bbb)
new_compare21(zzz1900, zzz19700, False, he, hf, hg) → new_ltEs0(zzz1900, zzz19700, he, hf, hg)
new_compare(:(zzz19000, zzz19001), :(zzz197000, zzz197001), gb) → new_compare(zzz19001, zzz197001, gb)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), app(ty_Maybe, eg), cb, df) → new_lt(zzz19010, zzz197010, eg)
new_compare(:(zzz19000, zzz19001), :(zzz197000, zzz197001), gb) → new_primCompAux(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, gb), gb)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), app(app(app(ty_@3, dg), dh), ea)), df)) → new_lt0(zzz19011, zzz197011, dg, dh, ea)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), cb), app(ty_Maybe, cc))) → new_ltEs(zzz19012, zzz197012, cc)
new_compare1(zzz1900, zzz19700, hd) → new_compare20(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, hd), hd)
new_compare22(@2(zzz1900, Left(zzz19010)), @2(zzz19700, Left(zzz197010)), False, bab, app(app(ty_Either, app(app(app(ty_@3, bda), bdb), bdc)), bch)) → new_ltEs0(zzz19010, zzz197010, bda, bdb, bdc)
new_ltEs3(Right(zzz19010), Right(zzz197010), bea, app(ty_Maybe, beb)) → new_ltEs(zzz19010, zzz197010, beb)
new_primCompAux(zzz19000, zzz197000, zzz316, app(app(app(ty_@3, gd), ge), gf)) → new_compare2(zzz19000, zzz197000, gd, ge, gf)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, ca), cb), app(app(ty_@2, da), db))) → new_ltEs2(zzz19012, zzz197012, da, db)
new_lt2(zzz1900, zzz19700, hh, baa) → new_compare22(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, hh, baa), hh, baa)
new_compare22(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, app(app(ty_Either, bfd), bfe), bfc) → new_compare23(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bfd, bfe), bfd, bfe)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, app(ty_[], bcb)), bbf)) → new_lt1(zzz19010, zzz197010, bcb)
new_compare4(zzz1900, zzz19700, bfd, bfe) → new_compare23(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bfd, bfe), bfd, bfe)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, app(app(ty_Either, ee), ef), df) → new_lt3(zzz19011, zzz197011, ee, ef)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, bac), app(ty_[], bah))) → new_ltEs1(zzz19011, zzz197011, bah)
new_compare22(@2(zzz1900, @2(zzz19010, zzz19011)), @2(zzz19700, @2(zzz197010, zzz197011)), False, bab, app(app(ty_@2, app(app(app(ty_@3, bbg), bbh), bca)), bbf)) → new_lt0(zzz19010, zzz197010, bbg, bbh, bca)
new_ltEs3(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, bda), bdb), bdc), bch) → new_ltEs0(zzz19010, zzz197010, bda, bdb, bdc)
new_compare22(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, app(app(app(ty_@3, he), hf), hg), bfc) → new_compare21(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, he, hf, hg), he, hf, hg)
new_ltEs0(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, app(ty_Maybe, de), df) → new_lt(zzz19011, zzz197011, de)
new_compare20(zzz1900, zzz19700, False, hd) → new_ltEs(zzz1900, zzz19700, hd)
new_compare22(@2(zzz1900, @3(zzz19010, zzz19011, zzz19012)), @2(zzz19700, @3(zzz197010, zzz197011, zzz197012)), False, bab, app(app(app(ty_@3, app(app(ty_@2, fd), ff)), cb), df)) → new_lt2(zzz19010, zzz197010, fd, ff)
new_compare22(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, app(app(ty_@2, hh), baa), bfc) → new_compare22(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, hh, baa), hh, baa)

The TRS R consists of the following rules:

new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Maybe, ddb)) → new_esEs4(zzz5000, zzz4000, ddb)
new_esEs23(zzz5002, zzz4002, app(app(ty_Either, cch), cda)) → new_esEs7(zzz5002, zzz4002, cch, cda)
new_lt7(zzz1900, zzz19700, hd) → new_esEs8(new_compare6(zzz1900, zzz19700, hd), LT)
new_lt21(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare17(Char(zzz19000), Char(zzz197000)) → new_primCmpNat0(zzz19000, zzz197000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_Either, cgg), cgh), cga) → new_esEs7(zzz5000, zzz4000, cgg, cgh)
new_ltEs14(zzz1901, zzz19701) → new_not(new_esEs8(new_compare13(zzz1901, zzz19701), GT))
new_esEs21(zzz19011, zzz197011, app(app(ty_@2, ec), ed)) → new_esEs6(zzz19011, zzz197011, ec, ed)
new_lt19(zzz19011, zzz197011, app(ty_Ratio, cbe)) → new_lt10(zzz19011, zzz197011, cbe)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_ltEs4(EQ, GT) → True
new_esEs24(zzz5001, zzz4001, app(app(app(ty_@3, cde), cdf), cdg)) → new_esEs5(zzz5001, zzz4001, cde, cdf, cdg)
new_lt19(zzz19011, zzz197011, app(app(app(ty_@3, dg), dh), ea)) → new_lt8(zzz19011, zzz197011, dg, dh, ea)
new_compare26(zzz1900, zzz19700, False, he, hf, hg) → new_compare19(zzz1900, zzz19700, new_ltEs9(zzz1900, zzz19700, he, hf, hg), he, hf, hg)
new_compare110(zzz286, zzz287, zzz288, zzz289, True, bfg, bfh) → LT
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs17(Char(zzz5000), Char(zzz4000)) → new_primEqNat0(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_@0, bch) → new_ltEs10(zzz19010, zzz197010)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Maybe, cgf), cga) → new_esEs4(zzz5000, zzz4000, cgf)
new_esEs24(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Double, cga) → new_esEs10(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Ratio, bgb), bch) → new_ltEs6(zzz19010, zzz197010, bgb)
new_compare25(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, bab, bfc) → new_compare113(zzz1900, zzz1901, zzz19700, zzz19701, new_lt6(zzz1900, zzz19700, bab), new_asAs(new_esEs20(zzz1900, zzz19700, bab), new_ltEs18(zzz1901, zzz19701, bfc)), bab, bfc)
new_esEs24(zzz5001, zzz4001, app(ty_Maybe, cea)) → new_esEs4(zzz5001, zzz4001, cea)
new_esEs4(Nothing, Just(zzz4000), dcd) → False
new_esEs4(Just(zzz5000), Nothing, dcd) → False
new_esEs21(zzz19011, zzz197011, ty_@0) → new_esEs19(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(app(ty_@3, eh), fa), fb)) → new_lt8(zzz19010, zzz197010, eh, fa, fb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Ratio, dce)) → new_esEs14(zzz5000, zzz4000, dce)
new_esEs12(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_lt21(zzz19010, zzz197010, app(ty_Maybe, bbe)) → new_lt7(zzz19010, zzz197010, bbe)
new_compare27(zzz1900, zzz19700, False, bfd, bfe) → new_compare114(zzz1900, zzz19700, new_ltEs7(zzz1900, zzz19700, bfd, bfe), bfd, bfe)
new_esEs25(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Float) → new_esEs16(zzz5002, zzz4002)
new_ltEs20(zzz19011, zzz197011, ty_Bool) → new_ltEs5(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Char) → new_compare17(zzz19000, zzz197000)
new_ltEs7(Left(zzz19010), Right(zzz197010), bea, bch) → True
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, cgb), cgc), cgd), cga) → new_esEs5(zzz5000, zzz4000, cgb, cgc, cgd)
new_esEs6(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bgd, bge) → new_asAs(new_esEs13(zzz5000, zzz4000, bgd), new_esEs12(zzz5001, zzz4001, bge))
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs27(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_Maybe, hd)) → new_esEs4(zzz1900, zzz19700, hd)
new_lt20(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_compare5(zzz19000, zzz197000, app(ty_Ratio, bff)) → new_compare11(zzz19000, zzz197000, bff)
new_esEs22(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, app(ty_Maybe, bad)) → new_ltEs8(zzz19011, zzz197011, bad)
new_ltEs18(zzz1901, zzz19701, ty_Char) → new_ltEs16(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(ty_[], bhb)) → new_esEs18(zzz5001, zzz4001, bhb)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_[], cge), cga) → new_esEs18(zzz5000, zzz4000, cge)
new_esEs24(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Bool, cga) → new_esEs9(zzz5000, zzz4000)
new_lt21(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_compare16(zzz1900, zzz19700, bfd, bfe) → new_compare27(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bfd, bfe), bfd, bfe)
new_esEs23(zzz5002, zzz4002, app(ty_Maybe, ccg)) → new_esEs4(zzz5002, zzz4002, ccg)
new_ltEs18(zzz1901, zzz19701, app(ty_Ratio, bga)) → new_ltEs6(zzz1901, zzz19701, bga)
new_esEs13(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs20(zzz1900, zzz19700, app(ty_Ratio, cbc)) → new_esEs14(zzz1900, zzz19700, cbc)
new_esEs23(zzz5002, zzz4002, ty_Bool) → new_esEs9(zzz5002, zzz4002)
new_compare18(Double(zzz19000, zzz19001), Double(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_esEs7(Right(zzz5000), Right(zzz4000), chc, app(app(app(ty_@3, che), chf), chg)) → new_esEs5(zzz5000, zzz4000, che, chf, chg)
new_compare113(zzz286, zzz287, zzz288, zzz289, False, zzz291, bfg, bfh) → new_compare110(zzz286, zzz287, zzz288, zzz289, zzz291, bfg, bfh)
new_lt6(zzz1900, zzz19700, app(ty_Ratio, cbc)) → new_lt10(zzz1900, zzz19700, cbc)
new_lt19(zzz19011, zzz197011, ty_Float) → new_lt13(zzz19011, zzz197011)
new_compare0(:(zzz19000, zzz19001), :(zzz197000, zzz197001), gb) → new_primCompAux0(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, gb), gb)
new_esEs22(zzz19010, zzz197010, app(ty_Ratio, cbf)) → new_esEs14(zzz19010, zzz197010, cbf)
new_esEs21(zzz19011, zzz197011, app(ty_Ratio, cbe)) → new_esEs14(zzz19011, zzz197011, cbe)
new_esEs15(Integer(zzz5000), Integer(zzz4000)) → new_primEqInt(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(ty_Maybe, dbd)) → new_esEs4(zzz5000, zzz4000, dbd)
new_esEs20(zzz1900, zzz19700, app(app(ty_@2, hh), baa)) → new_esEs6(zzz1900, zzz19700, hh, baa)
new_esEs22(zzz19010, zzz197010, app(app(ty_Either, fg), fh)) → new_esEs7(zzz19010, zzz197010, fg, fh)
new_lt6(zzz1900, zzz19700, app(app(app(ty_@3, he), hf), hg)) → new_lt8(zzz1900, zzz19700, he, hf, hg)
new_esEs29(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare29(zzz1900, zzz19700, False, hd) → new_compare115(zzz1900, zzz19700, new_ltEs8(zzz1900, zzz19700, hd), hd)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, ba), bb), bc)) → new_ltEs9(zzz19010, zzz197010, ba, bb, bc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, bda), bdb), bdc), bch) → new_ltEs9(zzz19010, zzz197010, bda, bdb, bdc)
new_lt21(zzz19010, zzz197010, app(app(ty_@2, bcc), bcd)) → new_lt12(zzz19010, zzz197010, bcc, bcd)
new_pePe(False, zzz315) → zzz315
new_esEs24(zzz5001, zzz4001, app(ty_Ratio, cdd)) → new_esEs14(zzz5001, zzz4001, cdd)
new_esEs23(zzz5002, zzz4002, ty_@0) → new_esEs19(zzz5002, zzz4002)
new_esEs27(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Left(zzz4000), chc, cga) → False
new_esEs7(Left(zzz5000), Right(zzz4000), chc, cga) → False
new_esEs18([], :(zzz4000, zzz4001), daf) → False
new_esEs18(:(zzz5000, zzz5001), [], daf) → False
new_ltEs16(zzz1901, zzz19701) → new_not(new_esEs8(new_compare17(zzz1901, zzz19701), GT))
new_lt21(zzz19010, zzz197010, app(ty_[], bcb)) → new_lt11(zzz19010, zzz197010, bcb)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, app(app(ty_@2, beg), beh)) → new_ltEs13(zzz19010, zzz197010, beg, beh)
new_lt19(zzz19011, zzz197011, app(ty_Maybe, de)) → new_lt7(zzz19011, zzz197011, de)
new_esEs27(zzz19010, zzz197010, app(app(ty_Either, bce), bcf)) → new_esEs7(zzz19010, zzz197010, bce, bcf)
new_compare19(zzz1900, zzz19700, True, he, hf, hg) → LT
new_ltEs20(zzz19011, zzz197011, ty_@0) → new_ltEs10(zzz19011, zzz197011)
new_esEs13(zzz5000, zzz4000, app(ty_Maybe, cae)) → new_esEs4(zzz5000, zzz4000, cae)
new_esEs26(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs15(zzz1901, zzz19701) → new_not(new_esEs8(new_compare14(zzz1901, zzz19701), GT))
new_esEs22(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_lt8(zzz1900, zzz19700, he, hf, hg) → new_esEs8(new_compare7(zzz1900, zzz19700, he, hf, hg), LT)
new_esEs20(zzz1900, zzz19700, app(ty_[], gb)) → new_esEs18(zzz1900, zzz19700, gb)
new_compare111(zzz1900, zzz19700, False) → GT
new_compare111(zzz1900, zzz19700, True) → LT
new_esEs22(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_ltEs20(zzz19011, zzz197011, app(ty_[], bah)) → new_ltEs12(zzz19011, zzz197011, bah)
new_lt6(zzz1900, zzz19700, ty_@0) → new_lt9(zzz1900, zzz19700)
new_ltEs19(zzz19012, zzz197012, ty_Double) → new_ltEs17(zzz19012, zzz197012)
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_compare115(zzz1900, zzz19700, False, hd) → GT
new_ltEs8(Nothing, Just(zzz197010), cbb) → True
new_esEs25(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs16(Float(zzz5000, zzz5001), Float(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_esEs25(zzz5000, zzz4000, app(app(ty_@2, cff), cfg)) → new_esEs6(zzz5000, zzz4000, cff, cfg)
new_esEs8(LT, LT) → True
new_lt6(zzz1900, zzz19700, ty_Double) → new_lt18(zzz1900, zzz19700)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Int, cga) → new_esEs11(zzz5000, zzz4000)
new_compare115(zzz1900, zzz19700, True, hd) → LT
new_esEs25(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_Either, ceb), cec)) → new_esEs7(zzz5001, zzz4001, ceb, cec)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_ltEs5(True, False) → False
new_lt21(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_@2, ced), cee)) → new_esEs6(zzz5001, zzz4001, ced, cee)
new_compare0([], [], gb) → EQ
new_pePe(True, zzz315) → True
new_compare15(zzz1900, zzz19700) → new_compare24(zzz1900, zzz19700, new_esEs9(zzz1900, zzz19700))
new_primEqNat0(Zero, Zero) → True
new_lt6(zzz1900, zzz19700, ty_Bool) → new_lt15(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Double) → new_ltEs17(zzz1901, zzz19701)
new_esEs20(zzz1900, zzz19700, ty_Int) → new_esEs11(zzz1900, zzz19700)
new_esEs26(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Ordering) → new_ltEs4(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(app(ty_Either, bce), bcf)) → new_lt16(zzz19010, zzz197010, bce, bcf)
new_esEs25(zzz5000, zzz4000, app(ty_[], cfb)) → new_esEs18(zzz5000, zzz4000, cfb)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_esEs12(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_lt19(zzz19011, zzz197011, ty_Ordering) → new_lt5(zzz19011, zzz197011)
new_esEs24(zzz5001, zzz4001, app(ty_[], cdh)) → new_esEs18(zzz5001, zzz4001, cdh)
new_ltEs5(True, True) → True
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Maybe, bcg), bch) → new_ltEs8(zzz19010, zzz197010, bcg)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Ordering, cga) → new_esEs8(zzz5000, zzz4000)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, app(ty_Maybe, beb)) → new_ltEs8(zzz19010, zzz197010, beb)
new_esEs26(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(app(app(ty_@3, ca), cb), df)) → new_ltEs9(zzz1901, zzz19701, ca, cb, df)
new_esEs8(GT, GT) → True
new_compare5(zzz19000, zzz197000, ty_Float) → new_compare13(zzz19000, zzz197000)
new_esEs25(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, app(app(ty_Either, dab), dac)) → new_esEs7(zzz5000, zzz4000, dab, dac)
new_lt21(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_esEs22(zzz19010, zzz197010, app(ty_[], fc)) → new_esEs18(zzz19010, zzz197010, fc)
new_ltEs9(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), ca, cb, df) → new_pePe(new_lt20(zzz19010, zzz197010, ca), new_asAs(new_esEs22(zzz19010, zzz197010, ca), new_pePe(new_lt19(zzz19011, zzz197011, cb), new_asAs(new_esEs21(zzz19011, zzz197011, cb), new_ltEs19(zzz19012, zzz197012, df)))))
new_lt20(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Int) → new_ltEs15(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(ty_Ratio, dcc)) → new_lt10(zzz19010, zzz197010, dcc)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Integer) → new_ltEs11(zzz19011, zzz197011)
new_esEs20(zzz1900, zzz19700, ty_Ordering) → new_esEs8(zzz1900, zzz19700)
new_esEs23(zzz5002, zzz4002, ty_Ordering) → new_esEs8(zzz5002, zzz4002)
new_ltEs5(False, False) → True
new_ltEs18(zzz1901, zzz19701, app(app(ty_Either, bea), bch)) → new_ltEs7(zzz1901, zzz19701, bea, bch)
new_ltEs19(zzz19012, zzz197012, app(app(app(ty_@3, cd), ce), cf)) → new_ltEs9(zzz19012, zzz197012, cd, ce, cf)
new_ltEs20(zzz19011, zzz197011, app(app(app(ty_@3, bae), baf), bag)) → new_ltEs9(zzz19011, zzz197011, bae, baf, bag)
new_lt4(zzz1900, zzz19700) → new_esEs8(new_compare10(zzz1900, zzz19700), LT)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Bool, bch) → new_ltEs5(zzz19010, zzz197010)
new_ltEs13(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bac, bbf) → new_pePe(new_lt21(zzz19010, zzz197010, bac), new_asAs(new_esEs27(zzz19010, zzz197010, bac), new_ltEs20(zzz19011, zzz197011, bbf)))
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_[], eb)) → new_esEs18(zzz19011, zzz197011, eb)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Integer, cga) → new_esEs15(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Left(zzz197010), bea, bch) → False
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_@2, cha), chb), cga) → new_esEs6(zzz5000, zzz4000, cha, chb)
new_ltEs19(zzz19012, zzz197012, ty_Ordering) → new_ltEs4(zzz19012, zzz197012)
new_primEqInt(Neg(Zero), Neg(Succ(zzz40000))) → False
new_primEqInt(Neg(Succ(zzz50000)), Neg(Zero)) → False
new_compare10(Integer(zzz19000), Integer(zzz197000)) → new_primCmpInt(zzz19000, zzz197000)
new_esEs8(EQ, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_Either, bg), bh)) → new_ltEs7(zzz19010, zzz197010, bg, bh)
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_compare19(zzz1900, zzz19700, False, he, hf, hg) → GT
new_esEs26(zzz5000, zzz4000, app(ty_[], dbc)) → new_esEs18(zzz5000, zzz4000, dbc)
new_esEs22(zzz19010, zzz197010, app(app(app(ty_@3, eh), fa), fb)) → new_esEs5(zzz19010, zzz197010, eh, fa, fb)
new_compare113(zzz286, zzz287, zzz288, zzz289, True, zzz291, bfg, bfh) → new_compare110(zzz286, zzz287, zzz288, zzz289, True, bfg, bfh)
new_esEs20(zzz1900, zzz19700, ty_@0) → new_esEs19(zzz1900, zzz19700)
new_esEs19(@0, @0) → True
new_esEs26(zzz5000, zzz4000, app(app(ty_Either, dbe), dbf)) → new_esEs7(zzz5000, zzz4000, dbe, dbf)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Ordering) → new_ltEs4(zzz1901, zzz19701)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_ltEs4(EQ, LT) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_Either, ddc), ddd)) → new_esEs7(zzz5000, zzz4000, ddc, ddd)
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt19(zzz19011, zzz197011, app(app(ty_Either, ee), ef)) → new_lt16(zzz19011, zzz197011, ee, ef)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, app(app(ty_@2, dad), dae)) → new_esEs6(zzz5000, zzz4000, dad, dae)
new_esEs22(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_@0) → new_compare8(zzz19000, zzz197000)
new_esEs22(zzz19010, zzz197010, app(ty_Maybe, eg)) → new_esEs4(zzz19010, zzz197010, eg)
new_lt21(zzz19010, zzz197010, app(app(app(ty_@3, bbg), bbh), bca)) → new_lt8(zzz19010, zzz197010, bbg, bbh, bca)
new_esEs25(zzz5000, zzz4000, app(ty_Maybe, cfc)) → new_esEs4(zzz5000, zzz4000, cfc)
new_compare112(zzz1900, zzz19700, True) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Float, bch) → new_ltEs14(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Bool) → new_ltEs5(zzz1901, zzz19701)
new_primEqInt(Pos(Succ(zzz50000)), Pos(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs12(zzz5001, zzz4001, app(app(app(ty_@3, bgg), bgh), bha)) → new_esEs5(zzz5001, zzz4001, bgg, bgh, bha)
new_compare27(zzz1900, zzz19700, True, bfd, bfe) → EQ
new_lt19(zzz19011, zzz197011, app(app(ty_@2, ec), ed)) → new_lt12(zzz19011, zzz197011, ec, ed)
new_ltEs20(zzz19011, zzz197011, ty_Float) → new_ltEs14(zzz19011, zzz197011)
new_ltEs18(zzz1901, zzz19701, ty_@0) → new_ltEs10(zzz1901, zzz19701)
new_esEs23(zzz5002, zzz4002, ty_Char) → new_esEs17(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_primEqNat0(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat0(zzz50000, zzz40000)
new_esEs27(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, app(ty_[], chh)) → new_esEs18(zzz5000, zzz4000, chh)
new_esEs23(zzz5002, zzz4002, app(ty_Ratio, ccb)) → new_esEs14(zzz5002, zzz4002, ccb)
new_esEs13(zzz5000, zzz4000, app(app(app(ty_@3, caa), cab), cac)) → new_esEs5(zzz5000, zzz4000, caa, cab, cac)
new_compare5(zzz19000, zzz197000, ty_Int) → new_compare14(zzz19000, zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_esEs14(:%(zzz5000, zzz5001), :%(zzz4000, zzz4001), ddg) → new_asAs(new_esEs29(zzz5000, zzz4000, ddg), new_esEs28(zzz5001, zzz4001, ddg))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, dcf), dcg), dch)) → new_esEs5(zzz5000, zzz4000, dcf, dcg, dch)
new_ltEs20(zzz19011, zzz197011, ty_Char) → new_ltEs16(zzz19011, zzz197011)
new_esEs22(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_lt10(zzz1900, zzz19700, cbc) → new_esEs8(new_compare11(zzz1900, zzz19700, cbc), LT)
new_ltEs4(GT, EQ) → False
new_primCompAux00(zzz323, LT) → LT
new_esEs25(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_lt6(zzz1900, zzz19700, ty_Integer) → new_lt4(zzz1900, zzz19700)
new_esEs28(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_compare114(zzz1900, zzz19700, True, bfd, bfe) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Int, bch) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(app(ty_Either, dc), dd)) → new_ltEs7(zzz19012, zzz197012, dc, dd)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_esEs7(Right(zzz5000), Right(zzz4000), chc, app(ty_Ratio, chd)) → new_esEs14(zzz5000, zzz4000, chd)
new_ltEs8(Just(zzz19010), Nothing, cbb) → False
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs27(zzz19010, zzz197010, app(app(app(ty_@3, bbg), bbh), bca)) → new_esEs5(zzz19010, zzz197010, bbg, bbh, bca)
new_esEs21(zzz19011, zzz197011, ty_Int) → new_esEs11(zzz19011, zzz197011)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Succ(zzz50000)), Pos(Zero)) → False
new_esEs27(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_ltEs4(EQ, EQ) → True
new_ltEs18(zzz1901, zzz19701, ty_Integer) → new_ltEs11(zzz1901, zzz19701)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Ratio, dca)) → new_ltEs6(zzz19010, zzz197010, dca)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_ltEs4(GT, LT) → False
new_sr0(Integer(zzz1970000), Integer(zzz190010)) → Integer(new_primMulInt(zzz1970000, zzz190010))
new_primEqInt(Neg(Succ(zzz50000)), Pos(zzz4000)) → False
new_primEqInt(Pos(Succ(zzz50000)), Neg(zzz4000)) → False
new_compare24(zzz1900, zzz19700, False) → new_compare111(zzz1900, zzz19700, new_ltEs5(zzz1900, zzz19700))
new_ltEs5(False, True) → True
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_@2, dde), ddf)) → new_esEs6(zzz5000, zzz4000, dde, ddf)
new_lt16(zzz1900, zzz19700, bfd, bfe) → new_esEs8(new_compare16(zzz1900, zzz19700, bfd, bfe), LT)
new_esEs22(zzz19010, zzz197010, app(app(ty_@2, fd), ff)) → new_esEs6(zzz19010, zzz197010, fd, ff)
new_compare7(zzz1900, zzz19700, he, hf, hg) → new_compare26(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, he, hf, hg), he, hf, hg)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Ordering, bch) → new_ltEs4(zzz19010, zzz197010)
new_compare9(zzz1900, zzz19700) → new_compare28(zzz1900, zzz19700, new_esEs8(zzz1900, zzz19700))
new_primEqInt(Neg(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz40000))) → False
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Char, bch) → new_ltEs16(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Integer) → new_esEs15(zzz19011, zzz197011)
new_esEs18(:(zzz5000, zzz5001), :(zzz4000, zzz4001), daf) → new_asAs(new_esEs26(zzz5000, zzz4000, daf), new_esEs18(zzz5001, zzz4001, daf))
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCompAux00(zzz323, EQ) → zzz323
new_esEs7(Right(zzz5000), Right(zzz4000), chc, app(ty_Maybe, daa)) → new_esEs4(zzz5000, zzz4000, daa)
new_compare24(zzz1900, zzz19700, True) → EQ
new_lt21(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_esEs13(zzz5000, zzz4000, app(ty_[], cad)) → new_esEs18(zzz5000, zzz4000, cad)
new_lt17(zzz1900, zzz19700) → new_esEs8(new_compare17(zzz1900, zzz19700), LT)
new_esEs26(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Double) → new_esEs10(zzz19011, zzz197011)
new_ltEs19(zzz19012, zzz197012, app(app(ty_@2, da), db)) → new_ltEs13(zzz19012, zzz197012, da, db)
new_compare13(Float(zzz19000, zzz19001), Float(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_not(False) → True
new_compare114(zzz1900, zzz19700, False, bfd, bfe) → GT
new_esEs11(zzz500, zzz400) → new_primEqInt(zzz500, zzz400)
new_compare5(zzz19000, zzz197000, app(app(ty_@2, gh), ha)) → new_compare12(zzz19000, zzz197000, gh, ha)
new_lt20(zzz19010, zzz197010, app(ty_[], fc)) → new_lt11(zzz19010, zzz197010, fc)
new_esEs13(zzz5000, zzz4000, app(app(ty_Either, caf), cag)) → new_esEs7(zzz5000, zzz4000, caf, cag)
new_ltEs17(zzz1901, zzz19701) → new_not(new_esEs8(new_compare18(zzz1901, zzz19701), GT))
new_lt20(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_esEs26(zzz5000, zzz4000, app(ty_Ratio, dag)) → new_esEs14(zzz5000, zzz4000, dag)
new_esEs23(zzz5002, zzz4002, app(app(ty_@2, cdb), cdc)) → new_esEs6(zzz5002, zzz4002, cdb, cdc)
new_esEs13(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs25(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_ltEs19(zzz19012, zzz197012, app(ty_[], cg)) → new_ltEs12(zzz19012, zzz197012, cg)
new_lt6(zzz1900, zzz19700, app(ty_[], gb)) → new_lt11(zzz1900, zzz19700, gb)
new_lt20(zzz19010, zzz197010, app(app(ty_Either, fg), fh)) → new_lt16(zzz19010, zzz197010, fg, fh)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, app(ty_[], bef)) → new_ltEs12(zzz19010, zzz197010, bef)
new_compare0(:(zzz19000, zzz19001), [], gb) → GT
new_lt21(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_compare28(zzz1900, zzz19700, True) → EQ
new_lt19(zzz19011, zzz197011, ty_Integer) → new_lt4(zzz19011, zzz197011)
new_esEs27(zzz19010, zzz197010, app(ty_[], bcb)) → new_esEs18(zzz19010, zzz197010, bcb)
new_esEs9(True, True) → True
new_esEs27(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(app(app(ty_@3, he), hf), hg)) → new_esEs5(zzz1900, zzz19700, he, hf, hg)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs21(zzz19011, zzz197011, app(app(app(ty_@3, dg), dh), ea)) → new_esEs5(zzz19011, zzz197011, dg, dh, ea)
new_lt19(zzz19011, zzz197011, ty_Char) → new_lt17(zzz19011, zzz197011)
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Integer) → new_compare10(new_sr0(zzz19000, zzz197001), new_sr0(zzz197000, zzz19001))
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Ratio, cfh), cga) → new_esEs14(zzz5000, zzz4000, cfh)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs27(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(ty_Maybe, cc)) → new_ltEs8(zzz19012, zzz197012, cc)
new_esEs27(zzz19010, zzz197010, app(app(ty_@2, bcc), bcd)) → new_esEs6(zzz19010, zzz197010, bcc, bcd)
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_ltEs19(zzz19012, zzz197012, app(ty_Ratio, cbd)) → new_ltEs6(zzz19012, zzz197012, cbd)
new_esEs20(zzz1900, zzz19700, ty_Integer) → new_esEs15(zzz1900, zzz19700)
new_lt9(zzz1900, zzz19700) → new_esEs8(new_compare8(zzz1900, zzz19700), LT)
new_primEqNat0(Succ(zzz50000), Zero) → False
new_primEqNat0(Zero, Succ(zzz40000)) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(ty_@2, fd), ff)) → new_lt12(zzz19010, zzz197010, fd, ff)
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_Either, bdg), bdh), bch) → new_ltEs7(zzz19010, zzz197010, bdg, bdh)
new_compare25(zzz190, zzz1970, True, bab, bfc) → EQ
new_esEs24(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs4(Nothing, Nothing, dcd) → True
new_lt19(zzz19011, zzz197011, app(ty_[], eb)) → new_lt11(zzz19011, zzz197011, eb)
new_ltEs6(zzz1901, zzz19701, bga) → new_not(new_esEs8(new_compare11(zzz1901, zzz19701, bga), GT))
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Char, cga) → new_esEs17(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Bool) → new_esEs9(zzz19011, zzz197011)
new_esEs12(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_esEs23(zzz5002, zzz4002, ty_Int) → new_esEs11(zzz5002, zzz4002)
new_lt20(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, ty_Ordering) → new_lt5(zzz1900, zzz19700)
new_esEs27(zzz19010, zzz197010, app(ty_Maybe, bbe)) → new_esEs4(zzz19010, zzz197010, bbe)
new_esEs21(zzz19011, zzz197011, app(app(ty_Either, ee), ef)) → new_esEs7(zzz19011, zzz197011, ee, ef)
new_ltEs20(zzz19011, zzz197011, ty_Double) → new_ltEs17(zzz19011, zzz197011)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_ltEs4(LT, GT) → True
new_lt15(zzz1900, zzz19700) → new_esEs8(new_compare15(zzz1900, zzz19700), LT)
new_lt21(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Char) → new_esEs17(zzz19011, zzz197011)
new_ltEs12(zzz1901, zzz19701, ga) → new_not(new_esEs8(new_compare0(zzz1901, zzz19701, ga), GT))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs20(zzz1900, zzz19700, ty_Bool) → new_esEs9(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_esEs25(zzz5000, zzz4000, app(ty_Ratio, cef)) → new_esEs14(zzz5000, zzz4000, cef)
new_lt20(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Float) → new_ltEs14(zzz1901, zzz19701)
new_compare5(zzz19000, zzz197000, ty_Integer) → new_compare10(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, app(app(ty_@2, cah), cba)) → new_esEs6(zzz5000, zzz4000, cah, cba)
new_lt6(zzz1900, zzz19700, app(app(ty_Either, bfd), bfe)) → new_lt16(zzz1900, zzz19700, bfd, bfe)
new_esEs24(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, app(app(ty_Either, bhd), bhe)) → new_esEs7(zzz5001, zzz4001, bhd, bhe)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Integer, bch) → new_ltEs11(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Integer) → new_ltEs11(zzz19012, zzz197012)
new_esEs25(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_Maybe, de)) → new_esEs4(zzz19011, zzz197011, de)
new_esEs9(False, True) → False
new_esEs9(True, False) → False
new_esEs20(zzz1900, zzz19700, app(app(ty_Either, bfd), bfe)) → new_esEs7(zzz1900, zzz19700, bfd, bfe)
new_esEs27(zzz19010, zzz197010, app(ty_Ratio, dcc)) → new_esEs14(zzz19010, zzz197010, dcc)
new_compare29(zzz1900, zzz19700, True, hd) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_ltEs4(LT, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Maybe, h)) → new_ltEs8(zzz19010, zzz197010, h)
new_lt20(zzz19010, zzz197010, app(ty_Maybe, eg)) → new_lt7(zzz19010, zzz197010, eg)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, app(app(ty_Either, bfa), bfb)) → new_ltEs7(zzz19010, zzz197010, bfa, bfb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, app(ty_Maybe, bhc)) → new_esEs4(zzz5001, zzz4001, bhc)
new_asAs(False, zzz239) → False
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Int) → new_compare14(new_sr(zzz19000, zzz197001), new_sr(zzz197000, zzz19001))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, app(ty_Ratio, bhh)) → new_esEs14(zzz5000, zzz4000, bhh)
new_compare12(zzz1900, zzz19700, hh, baa) → new_compare25(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, hh, baa), hh, baa)
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Float) → new_ltEs14(zzz19012, zzz197012)
new_esEs18([], [], daf) → True
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Ordering) → new_esEs8(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_[], dda)) → new_esEs18(zzz5000, zzz4000, dda)
new_lt19(zzz19011, zzz197011, ty_Double) → new_lt18(zzz19011, zzz197011)
new_esEs29(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, ty_Char) → new_ltEs16(zzz19012, zzz197012)
new_ltEs19(zzz19012, zzz197012, ty_@0) → new_ltEs10(zzz19012, zzz197012)
new_esEs20(zzz1900, zzz19700, ty_Float) → new_esEs16(zzz1900, zzz19700)
new_lt11(zzz1900, zzz19700, gb) → new_esEs8(new_compare0(zzz1900, zzz19700, gb), LT)
new_lt13(zzz1900, zzz19700) → new_esEs8(new_compare13(zzz1900, zzz19700), LT)
new_esEs28(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_lt20(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare110(zzz286, zzz287, zzz288, zzz289, False, bfg, bfh) → GT
new_esEs5(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), cbg, cbh, cca) → new_asAs(new_esEs25(zzz5000, zzz4000, cbg), new_asAs(new_esEs24(zzz5001, zzz4001, cbh), new_esEs23(zzz5002, zzz4002, cca)))
new_ltEs18(zzz1901, zzz19701, app(app(ty_@2, bac), bbf)) → new_ltEs13(zzz1901, zzz19701, bac, bbf)
new_esEs26(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Integer) → new_esEs15(zzz5002, zzz4002)
new_lt19(zzz19011, zzz197011, ty_Bool) → new_lt15(zzz19011, zzz197011)
new_compare5(zzz19000, zzz197000, ty_Bool) → new_compare15(zzz19000, zzz197000)
new_esEs9(False, False) → True
new_ltEs19(zzz19012, zzz197012, ty_Bool) → new_ltEs5(zzz19012, zzz197012)
new_esEs22(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, app(ty_Maybe, gc)) → new_compare6(zzz19000, zzz197000, gc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_@2, bde), bdf), bch) → new_ltEs13(zzz19010, zzz197010, bde, bdf)
new_ltEs20(zzz19011, zzz197011, app(app(ty_Either, bbc), bbd)) → new_ltEs7(zzz19011, zzz197011, bbc, bbd)
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, app(app(app(ty_@3, bec), bed), bee)) → new_ltEs9(zzz19010, zzz197010, bec, bed, bee)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_[], bdd), bch) → new_ltEs12(zzz19010, zzz197010, bdd)
new_esEs7(Right(zzz5000), Right(zzz4000), chc, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(ty_Maybe, cbb)) → new_ltEs8(zzz1901, zzz19701, cbb)
new_ltEs4(LT, LT) → True
new_ltEs19(zzz19012, zzz197012, ty_Int) → new_ltEs15(zzz19012, zzz197012)
new_ltEs8(Nothing, Nothing, cbb) → True
new_ltEs10(zzz1901, zzz19701) → new_not(new_esEs8(new_compare8(zzz1901, zzz19701), GT))
new_esEs23(zzz5002, zzz4002, ty_Double) → new_esEs10(zzz5002, zzz4002)
new_esEs25(zzz5000, zzz4000, app(app(app(ty_@3, ceg), ceh), cfa)) → new_esEs5(zzz5000, zzz4000, ceg, ceh, cfa)
new_ltEs20(zzz19011, zzz197011, app(ty_Ratio, dcb)) → new_ltEs6(zzz19011, zzz197011, dcb)
new_lt5(zzz1900, zzz19700) → new_esEs8(new_compare9(zzz1900, zzz19700), LT)
new_compare112(zzz1900, zzz19700, False) → GT
new_esEs12(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_lt12(zzz1900, zzz19700, hh, baa) → new_esEs8(new_compare12(zzz1900, zzz19700, hh, baa), LT)
new_esEs12(zzz5001, zzz4001, app(ty_Ratio, bgf)) → new_esEs14(zzz5001, zzz4001, bgf)
new_compare5(zzz19000, zzz197000, ty_Ordering) → new_compare9(zzz19000, zzz197000)
new_lt6(zzz1900, zzz19700, ty_Float) → new_lt13(zzz1900, zzz19700)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_compare5(zzz19000, zzz197000, app(app(app(ty_@3, gd), ge), gf)) → new_compare7(zzz19000, zzz197000, gd, ge, gf)
new_esEs20(zzz1900, zzz19700, ty_Char) → new_esEs17(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_compare26(zzz1900, zzz19700, True, he, hf, hg) → EQ
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_esEs22(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, app(ty_Maybe, hd)) → new_lt7(zzz1900, zzz19700, hd)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_@2, be), bf)) → new_ltEs13(zzz19010, zzz197010, be, bf)
new_lt6(zzz1900, zzz19700, ty_Int) → new_lt14(zzz1900, zzz19700)
new_compare0([], :(zzz197000, zzz197001), gb) → LT
new_esEs12(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs13(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_asAs(True, zzz239) → zzz239
new_esEs25(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_@0, cga) → new_esEs19(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(app(app(ty_@3, dah), dba), dbb)) → new_esEs5(zzz5000, zzz4000, dah, dba, dbb)
new_esEs27(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Double) → new_compare18(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt20(zzz19010, zzz197010, app(ty_Ratio, cbf)) → new_lt10(zzz19010, zzz197010, cbf)
new_lt6(zzz1900, zzz19700, ty_Char) → new_lt17(zzz1900, zzz19700)
new_lt19(zzz19011, zzz197011, ty_@0) → new_lt9(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare8(@0, @0) → EQ
new_ltEs11(zzz1901, zzz19701) → new_not(new_esEs8(new_compare10(zzz1901, zzz19701), GT))
new_esEs26(zzz5000, zzz4000, app(app(ty_@2, dbg), dbh)) → new_esEs6(zzz5000, zzz4000, dbg, dbh)
new_lt20(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_primCompAux0(zzz19000, zzz197000, zzz316, gb) → new_primCompAux00(zzz316, new_compare5(zzz19000, zzz197000, gb))
new_esEs23(zzz5002, zzz4002, app(app(app(ty_@3, ccc), ccd), cce)) → new_esEs5(zzz5002, zzz4002, ccc, ccd, cce)
new_ltEs18(zzz1901, zzz19701, app(ty_[], ga)) → new_ltEs12(zzz1901, zzz19701, ga)
new_ltEs20(zzz19011, zzz197011, app(app(ty_@2, bba), bbb)) → new_ltEs13(zzz19011, zzz197011, bba, bbb)
new_compare5(zzz19000, zzz197000, app(app(ty_Either, hb), hc)) → new_compare16(zzz19000, zzz197000, hb, hc)
new_lt18(zzz1900, zzz19700) → new_esEs8(new_compare18(zzz1900, zzz19700), LT)
new_compare28(zzz1900, zzz19700, False) → new_compare112(zzz1900, zzz19700, new_ltEs4(zzz1900, zzz19700))
new_lt21(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_ltEs4(GT, GT) → True
new_ltEs7(Right(zzz19010), Right(zzz197010), bea, app(ty_Ratio, bgc)) → new_ltEs6(zzz19010, zzz197010, bgc)
new_esEs23(zzz5002, zzz4002, app(ty_[], ccf)) → new_esEs18(zzz5002, zzz4002, ccf)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_[], bd)) → new_ltEs12(zzz19010, zzz197010, bd)
new_esEs20(zzz1900, zzz19700, ty_Double) → new_esEs10(zzz1900, zzz19700)
new_primCompAux00(zzz323, GT) → GT
new_esEs25(zzz5000, zzz4000, app(app(ty_Either, cfd), cfe)) → new_esEs7(zzz5000, zzz4000, cfd, cfe)
new_compare6(zzz1900, zzz19700, hd) → new_compare29(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, hd), hd)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Float, cga) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Float) → new_esEs16(zzz19011, zzz197011)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_lt6(zzz1900, zzz19700, app(app(ty_@2, hh), baa)) → new_lt12(zzz1900, zzz19700, hh, baa)
new_lt19(zzz19011, zzz197011, ty_Int) → new_lt14(zzz19011, zzz197011)
new_esEs10(Double(zzz5000, zzz5001), Double(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Double, bch) → new_ltEs17(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Int) → new_ltEs15(zzz1901, zzz19701)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_esEs27(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, app(app(ty_@2, bhf), bhg)) → new_esEs6(zzz5001, zzz4001, bhf, bhg)
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_not(True) → False
new_compare5(zzz19000, zzz197000, app(ty_[], gg)) → new_compare0(zzz19000, zzz197000, gg)

The set Q consists of the following terms:

new_lt6(x0, x1, ty_Float)
new_esEs22(x0, x1, ty_Char)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, ty_Integer)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_lt6(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_asAs(True, x0)
new_compare13(Float(x0, x1), Float(x2, x3))
new_lt19(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_lt20(x0, x1, ty_Char)
new_esEs13(x0, x1, app(app(ty_Either, x2), x3))
new_compare110(x0, x1, x2, x3, True, x4, x5)
new_primCmpNat0(Succ(x0), Zero)
new_esEs13(x0, x1, app(ty_[], x2))
new_primCompAux0(x0, x1, x2, x3)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Ordering)
new_compare27(x0, x1, True, x2, x3)
new_esEs12(x0, x1, app(app(ty_@2, x2), x3))
new_compare5(x0, x1, ty_Float)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_compare29(x0, x1, False, x2)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_lt19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Integer)
new_esEs12(x0, x1, ty_Char)
new_esEs13(x0, x1, ty_Int)
new_esEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, x1, ty_Int)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Ordering)
new_lt10(x0, x1, x2)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_lt20(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs23(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_compare19(x0, x1, True, x2, x3, x4)
new_esEs12(x0, x1, ty_@0)
new_esEs29(x0, x1, ty_Integer)
new_esEs8(GT, GT)
new_ltEs12(x0, x1, x2)
new_esEs21(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Float)
new_ltEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs26(x0, x1, ty_Ordering)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_compare19(x0, x1, False, x2, x3, x4)
new_compare114(x0, x1, True, x2, x3)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs20(x0, x1, ty_Integer)
new_primCompAux00(x0, LT)
new_lt6(x0, x1, ty_Bool)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, LT)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs27(x0, x1, ty_Double)
new_compare113(x0, x1, x2, x3, False, x4, x5, x6)
new_compare0([], :(x0, x1), x2)
new_esEs21(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs18(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Float)
new_ltEs5(False, False)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_ltEs20(x0, x1, app(ty_[], x2))
new_compare8(@0, @0)
new_esEs26(x0, x1, ty_Int)
new_ltEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_lt20(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Integer)
new_esEs21(x0, x1, ty_@0)
new_ltEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_ltEs20(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_lt20(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs27(x0, x1, ty_Integer)
new_lt11(x0, x1, x2)
new_lt20(x0, x1, ty_Bool)
new_lt21(x0, x1, ty_Int)
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs16(x0, x1)
new_ltEs18(x0, x1, ty_Integer)
new_primEqNat0(Zero, Zero)
new_esEs22(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_lt21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs9(True, True)
new_esEs21(x0, x1, ty_Int)
new_compare0(:(x0, x1), [], x2)
new_esEs24(x0, x1, ty_Int)
new_lt20(x0, x1, ty_@0)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Double)
new_lt4(x0, x1)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Integer)
new_lt6(x0, x1, ty_Int)
new_ltEs7(Right(x0), Left(x1), x2, x3)
new_ltEs7(Left(x0), Right(x1), x2, x3)
new_primMulNat0(Zero, Zero)
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_lt6(x0, x1, app(ty_Maybe, x2))
new_esEs12(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, ty_Int)
new_primCompAux00(x0, GT)
new_compare9(x0, x1)
new_esEs4(Nothing, Just(x0), x1)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_compare113(x0, x1, x2, x3, True, x4, x5, x6)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_lt19(x0, x1, ty_Bool)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs18(:(x0, x1), [], x2)
new_lt7(x0, x1, x2)
new_ltEs17(x0, x1)
new_esEs23(x0, x1, ty_Float)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_compare5(x0, x1, ty_Double)
new_ltEs4(GT, GT)
new_pePe(False, x0)
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_compare24(x0, x1, False)
new_compare5(x0, x1, ty_Ordering)
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs28(x0, x1, ty_Int)
new_lt13(x0, x1)
new_compare17(Char(x0), Char(x1))
new_esEs4(Just(x0), Nothing, x1)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_compare6(x0, x1, x2)
new_esEs12(x0, x1, ty_Float)
new_esEs13(x0, x1, ty_Double)
new_compare26(x0, x1, False, x2, x3, x4)
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_lt5(x0, x1)
new_esEs13(x0, x1, ty_Char)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(Nothing, Nothing, x0)
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(x0, x1, ty_Double)
new_compare10(Integer(x0), Integer(x1))
new_esEs26(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs26(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), ty_Double, x2)
new_primMulNat0(Succ(x0), Zero)
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_compare5(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs25(x0, x1, ty_Ordering)
new_esEs18(:(x0, x1), :(x2, x3), x4)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_compare27(x0, x1, False, x2, x3)
new_ltEs6(x0, x1, x2)
new_compare0([], [], x0)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, app(ty_[], x2))
new_primMulNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Char)
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_esEs20(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs12(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, ty_Integer)
new_primPlusNat0(Zero, Zero)
new_lt19(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs21(x0, x1, ty_Integer)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_compare14(x0, x1)
new_esEs26(x0, x1, ty_Float)
new_esEs23(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Float)
new_compare112(x0, x1, True)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs24(x0, x1, ty_@0)
new_ltEs18(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Float)
new_esEs12(x0, x1, ty_Int)
new_compare5(x0, x1, ty_Int)
new_esEs27(x0, x1, ty_Float)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs4(EQ, EQ)
new_compare5(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs24(x0, x1, ty_Float)
new_compare18(Double(x0, x1), Double(x2, x3))
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs18([], :(x0, x1), x2)
new_esEs25(x0, x1, ty_Double)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_ltEs19(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Double)
new_ltEs4(LT, EQ)
new_lt21(x0, x1, ty_Double)
new_ltEs4(EQ, LT)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_esEs13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_sr0(Integer(x0), Integer(x1))
new_pePe(True, x0)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_ltEs20(x0, x1, ty_Double)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_lt17(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_primPlusNat1(Zero, x0)
new_esEs22(x0, x1, ty_@0)
new_esEs13(x0, x1, ty_Integer)
new_ltEs7(Right(x0), Right(x1), x2, ty_Char)
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_compare111(x0, x1, True)
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_lt21(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs20(x0, x1, ty_Int)
new_compare5(x0, x1, ty_@0)
new_lt16(x0, x1, x2, x3)
new_esEs27(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), x1)
new_ltEs14(x0, x1)
new_primEqNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs13(x0, x1, app(ty_Maybe, x2))
new_esEs12(x0, x1, ty_Ordering)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs13(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Double)
new_lt6(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs21(x0, x1, ty_Bool)
new_asAs(False, x0)
new_compare25(@2(x0, x1), @2(x2, x3), False, x4, x5)
new_ltEs7(Right(x0), Right(x1), x2, ty_Double)
new_lt19(x0, x1, ty_Double)
new_lt12(x0, x1, x2, x3)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Neg(Zero), Neg(Zero))
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, ty_Char)
new_ltEs10(x0, x1)
new_esEs15(Integer(x0), Integer(x1))
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_esEs23(x0, x1, app(ty_[], x2))
new_ltEs11(x0, x1)
new_lt6(x0, x1, app(ty_[], x2))
new_esEs21(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_primPlusNat0(Zero, Succ(x0))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs13(x0, x1, app(app(ty_@2, x2), x3))
new_compare5(x0, x1, app(ty_Ratio, x2))
new_esEs13(x0, x1, ty_Ordering)
new_esEs12(x0, x1, ty_Integer)
new_ltEs4(LT, LT)
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs24(x0, x1, ty_Ordering)
new_compare5(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt21(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_lt19(x0, x1, app(ty_[], x2))
new_compare5(x0, x1, ty_Bool)
new_compare110(x0, x1, x2, x3, False, x4, x5)
new_esEs20(x0, x1, ty_Float)
new_compare7(x0, x1, x2, x3, x4)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs25(x0, x1, ty_Bool)
new_primMulInt(Pos(x0), Pos(x1))
new_lt20(x0, x1, ty_Float)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_Char)
new_lt21(x0, x1, ty_@0)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt19(x0, x1, ty_Char)
new_ltEs8(Nothing, Just(x0), x1)
new_ltEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs27(x0, x1, ty_Bool)
new_ltEs15(x0, x1)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs12(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_ltEs7(Left(x0), Left(x1), ty_Integer, x2)
new_esEs25(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Bool)
new_compare115(x0, x1, True, x2)
new_ltEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare112(x0, x1, False)
new_ltEs20(x0, x1, ty_Bool)
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs9(False, False)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs7(Right(x0), Right(x1), x2, ty_Bool)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt21(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Int)
new_compare16(x0, x1, x2, x3)
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, ty_@0)
new_ltEs20(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_esEs24(x0, x1, ty_Integer)
new_ltEs7(Right(x0), Right(x1), x2, ty_Float)
new_compare15(x0, x1)
new_compare115(x0, x1, False, x2)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs18([], [], x0)
new_esEs13(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_compare111(x0, x1, False)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_compare29(x0, x1, True, x2)
new_esEs13(x0, x1, ty_Float)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(True, True)
new_esEs17(Char(x0), Char(x1))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs4(EQ, GT)
new_ltEs4(GT, EQ)
new_compare114(x0, x1, False, x2, x3)
new_esEs13(x0, x1, ty_@0)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_not(True)
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Ordering)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs27(x0, x1, ty_Ordering)
new_ltEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs10(Double(x0, x1), Double(x2, x3))
new_esEs11(x0, x1)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_primPlusNat0(Succ(x0), Zero)
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_esEs20(x0, x1, ty_Bool)
new_ltEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Int)
new_compare25(x0, x1, True, x2, x3)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_lt14(x0, x1)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs25(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs12(x0, x1, app(ty_Ratio, x2))
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_compare24(x0, x1, True)
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, ty_Int)
new_ltEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_ltEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(False, True)
new_esEs9(True, False)
new_lt19(x0, x1, ty_Integer)
new_esEs25(x0, x1, app(ty_[], x2))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs25(x0, x1, ty_@0)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_lt18(x0, x1)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs13(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Succ(x0))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_lt6(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_@0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Float)
new_ltEs7(Left(x0), Left(x1), ty_Bool, x2)
new_ltEs20(x0, x1, ty_Char)
new_compare28(x0, x1, True)
new_lt21(x0, x1, app(ty_Maybe, x2))
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs8(Nothing, Nothing, x0)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs20(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_compare5(x0, x1, app(ty_Maybe, x2))
new_esEs20(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux00(x0, EQ)
new_compare26(x0, x1, True, x2, x3, x4)
new_esEs19(@0, @0)
new_ltEs4(GT, LT)
new_ltEs4(LT, GT)
new_ltEs5(True, False)
new_ltEs5(False, True)
new_lt9(x0, x1)
new_esEs12(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_compare12(x0, x1, x2, x3)
new_primEqNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_esEs12(x0, x1, app(ty_Maybe, x2))
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs8(Just(x0), Nothing, x1)
new_lt8(x0, x1, x2, x3, x4)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs14(:%(x0, x1), :%(x2, x3), x4)
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs20(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare28(x0, x1, False)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_intersectFM_C2Elt10(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz421, zzz422, zzz423, zzz424, zzz425, True, h, ba, bb) → new_intersectFM_C2Elt100(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz425, h, ba, bb)
new_intersectFM_C2Elt101(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz421, zzz422, zzz423, zzz424, zzz425, h, ba, bb) → new_intersectFM_C2Elt102(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz421, zzz422, zzz423, zzz424, zzz425, new_lt12(@2(zzz419, zzz420), zzz421, ba, bb), h, ba, bb)
new_intersectFM_C2Elt102(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz421, zzz422, zzz423, Branch(zzz4240, zzz4241, zzz4242, zzz4243, zzz4244), zzz425, True, h, ba, bb) → new_intersectFM_C2Elt101(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz4240, zzz4241, zzz4242, zzz4243, zzz4244, h, ba, bb)
new_intersectFM_C2Elt102(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz421, zzz422, zzz423, zzz424, zzz425, False, h, ba, bb) → new_intersectFM_C2Elt10(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz421, zzz422, zzz423, zzz424, zzz425, new_gt(@2(zzz419, zzz420), zzz421, ba, bb), h, ba, bb)
new_intersectFM_C2Elt100(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, Branch(zzz4240, zzz4241, zzz4242, zzz4243, zzz4244), h, ba, bb) → new_intersectFM_C2Elt101(zzz413, zzz414, zzz415, zzz416, zzz417, zzz418, zzz419, zzz420, zzz4240, zzz4241, zzz4242, zzz4243, zzz4244, h, ba, bb)

The TRS R consists of the following rules:

new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Maybe, ddg)) → new_esEs4(zzz5000, zzz4000, ddg)
new_esEs23(zzz5002, zzz4002, app(app(ty_Either, bhh), caa)) → new_esEs7(zzz5002, zzz4002, bhh, caa)
new_lt7(zzz1900, zzz19700, bcc) → new_esEs8(new_compare6(zzz1900, zzz19700, bcc), LT)
new_lt21(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare17(Char(zzz19000), Char(zzz197000)) → new_primCmpNat0(zzz19000, zzz197000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_Either, cea), ceb), cdc) → new_esEs7(zzz5000, zzz4000, cea, ceb)
new_ltEs14(zzz1901, zzz19701) → new_not(new_esEs8(new_compare13(zzz1901, zzz19701), GT))
new_esEs21(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_esEs6(zzz19011, zzz197011, bfa, bfb)
new_lt19(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_lt10(zzz19011, zzz197011, beg)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_ltEs4(EQ, GT) → True
new_esEs24(zzz5001, zzz4001, app(app(app(ty_@3, cae), caf), cag)) → new_esEs5(zzz5001, zzz4001, cae, caf, cag)
new_lt19(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_lt8(zzz19011, zzz197011, bed, bee, bef)
new_compare26(zzz1900, zzz19700, False, cf, cg, da) → new_compare19(zzz1900, zzz19700, new_ltEs9(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc) → LT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs17(Char(zzz5000), Char(zzz4000)) → new_primEqNat0(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_@0, de) → new_ltEs10(zzz19010, zzz197010)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Maybe, cdh), cdc) → new_esEs4(zzz5000, zzz4000, cdh)
new_esEs24(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Double, cdc) → new_esEs10(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Ratio, ea), de) → new_ltEs6(zzz19010, zzz197010, ea)
new_compare25(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, bbb, bbc) → new_compare113(zzz1900, zzz1901, zzz19700, zzz19701, new_lt6(zzz1900, zzz19700, bbb), new_asAs(new_esEs20(zzz1900, zzz19700, bbb), new_ltEs18(zzz1901, zzz19701, bbc)), bbb, bbc)
new_esEs24(zzz5001, zzz4001, app(ty_Maybe, cba)) → new_esEs4(zzz5001, zzz4001, cba)
new_esEs4(Nothing, Just(zzz4000), dda) → False
new_esEs4(Just(zzz5000), Nothing, dda) → False
new_esEs21(zzz19011, zzz197011, ty_@0) → new_esEs19(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_lt8(zzz19010, zzz197010, bff, bfg, bfh)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Ratio, ddb)) → new_esEs14(zzz5000, zzz4000, ddb)
new_esEs12(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_lt21(zzz19010, zzz197010, app(ty_Maybe, dbg)) → new_lt7(zzz19010, zzz197010, dbg)
new_compare27(zzz1900, zzz19700, False, bcg, bch) → new_compare114(zzz1900, zzz19700, new_ltEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs25(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Float) → new_esEs16(zzz5002, zzz4002)
new_ltEs20(zzz19011, zzz197011, ty_Bool) → new_ltEs5(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Char) → new_compare17(zzz19000, zzz197000)
new_ltEs7(Left(zzz19010), Right(zzz197010), eg, de) → True
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, cdd), cde), cdf), cdc) → new_esEs5(zzz5000, zzz4000, cdd, cde, cdf)
new_esEs6(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), gd, ge) → new_asAs(new_esEs13(zzz5000, zzz4000, gd), new_esEs12(zzz5001, zzz4001, ge))
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs27(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_esEs4(zzz1900, zzz19700, bcc)
new_lt20(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_compare5(zzz19000, zzz197000, app(ty_Ratio, bh)) → new_compare11(zzz19000, zzz197000, bh)
new_esEs22(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, app(ty_Maybe, dae)) → new_ltEs8(zzz19011, zzz197011, dae)
new_ltEs18(zzz1901, zzz19701, ty_Char) → new_ltEs16(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(ty_[], hb)) → new_esEs18(zzz5001, zzz4001, hb)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_[], cdg), cdc) → new_esEs18(zzz5000, zzz4000, cdg)
new_esEs24(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Bool, cdc) → new_esEs9(zzz5000, zzz4000)
new_lt21(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_compare16(zzz1900, zzz19700, bcg, bch) → new_compare27(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs23(zzz5002, zzz4002, app(ty_Maybe, bhg)) → new_esEs4(zzz5002, zzz4002, bhg)
new_ltEs18(zzz1901, zzz19701, app(ty_Ratio, gc)) → new_ltEs6(zzz1901, zzz19701, gc)
new_esEs13(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs20(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_esEs14(zzz1900, zzz19700, bcd)
new_esEs23(zzz5002, zzz4002, ty_Bool) → new_esEs9(zzz5002, zzz4002)
new_compare18(Double(zzz19000, zzz19001), Double(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_esEs7(Right(zzz5000), Right(zzz4000), cee, app(app(app(ty_@3, ceg), ceh), cfa)) → new_esEs5(zzz5000, zzz4000, ceg, ceh, cfa)
new_compare113(zzz286, zzz287, zzz288, zzz289, False, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, zzz291, db, dc)
new_lt6(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_lt10(zzz1900, zzz19700, bcd)
new_lt19(zzz19011, zzz197011, ty_Float) → new_lt13(zzz19011, zzz197011)
new_compare0(:(zzz19000, zzz19001), :(zzz197000, zzz197001), bc) → new_primCompAux0(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, bc), bc)
new_esEs22(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_esEs14(zzz19010, zzz197010, bga)
new_esEs21(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_esEs14(zzz19011, zzz197011, beg)
new_esEs15(Integer(zzz5000), Integer(zzz4000)) → new_primEqInt(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(ty_Maybe, cgf)) → new_esEs4(zzz5000, zzz4000, cgf)
new_esEs20(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_esEs6(zzz1900, zzz19700, bce, bcf)
new_esEs22(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_esEs7(zzz19010, zzz197010, bge, bgf)
new_lt6(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_lt8(zzz1900, zzz19700, cf, cg, da)
new_esEs29(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare29(zzz1900, zzz19700, False, bcc) → new_compare115(zzz1900, zzz19700, new_ltEs8(zzz1900, zzz19700, bcc), bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, chd), che), chf)) → new_ltEs9(zzz19010, zzz197010, chd, che, chf)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, df), dg), dh), de) → new_ltEs9(zzz19010, zzz197010, df, dg, dh)
new_lt21(zzz19010, zzz197010, app(app(ty_@2, dce), dcf)) → new_lt12(zzz19010, zzz197010, dce, dcf)
new_pePe(False, zzz315) → zzz315
new_esEs24(zzz5001, zzz4001, app(ty_Ratio, cad)) → new_esEs14(zzz5001, zzz4001, cad)
new_esEs23(zzz5002, zzz4002, ty_@0) → new_esEs19(zzz5002, zzz4002)
new_esEs27(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Left(zzz4000), cee, cdc) → False
new_esEs7(Left(zzz5000), Right(zzz4000), cee, cdc) → False
new_esEs18([], :(zzz4000, zzz4001), cfh) → False
new_esEs18(:(zzz5000, zzz5001), [], cfh) → False
new_ltEs16(zzz1901, zzz19701) → new_not(new_esEs8(new_compare17(zzz1901, zzz19701), GT))
new_lt21(zzz19010, zzz197010, app(ty_[], dcd)) → new_lt11(zzz19010, zzz197010, dcd)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_@2, fg), fh)) → new_ltEs13(zzz19010, zzz197010, fg, fh)
new_lt19(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_lt7(zzz19011, zzz197011, bec)
new_esEs27(zzz19010, zzz197010, app(app(ty_Either, dcg), dch)) → new_esEs7(zzz19010, zzz197010, dcg, dch)
new_compare19(zzz1900, zzz19700, True, cf, cg, da) → LT
new_ltEs20(zzz19011, zzz197011, ty_@0) → new_ltEs10(zzz19011, zzz197011)
new_esEs13(zzz5000, zzz4000, app(ty_Maybe, bae)) → new_esEs4(zzz5000, zzz4000, bae)
new_esEs26(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs15(zzz1901, zzz19701) → new_not(new_esEs8(new_compare14(zzz1901, zzz19701), GT))
new_esEs22(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_lt8(zzz1900, zzz19700, cf, cg, da) → new_esEs8(new_compare7(zzz1900, zzz19700, cf, cg, da), LT)
new_esEs20(zzz1900, zzz19700, app(ty_[], bc)) → new_esEs18(zzz1900, zzz19700, bc)
new_compare111(zzz1900, zzz19700, False) → GT
new_compare111(zzz1900, zzz19700, True) → LT
new_esEs22(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_ltEs20(zzz19011, zzz197011, app(ty_[], dbb)) → new_ltEs12(zzz19011, zzz197011, dbb)
new_lt6(zzz1900, zzz19700, ty_@0) → new_lt9(zzz1900, zzz19700)
new_ltEs19(zzz19012, zzz197012, ty_Double) → new_ltEs17(zzz19012, zzz197012)
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_compare115(zzz1900, zzz19700, False, bcc) → GT
new_ltEs8(Nothing, Just(zzz197010), bbd) → True
new_esEs25(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs16(Float(zzz5000, zzz5001), Float(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_esEs25(zzz5000, zzz4000, app(app(ty_@2, ccf), ccg)) → new_esEs6(zzz5000, zzz4000, ccf, ccg)
new_esEs8(LT, LT) → True
new_lt6(zzz1900, zzz19700, ty_Double) → new_lt18(zzz1900, zzz19700)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Int, cdc) → new_esEs11(zzz5000, zzz4000)
new_compare115(zzz1900, zzz19700, True, bcc) → LT
new_esEs25(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_Either, cbb), cbc)) → new_esEs7(zzz5001, zzz4001, cbb, cbc)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_ltEs5(True, False) → False
new_lt21(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_@2, cbd), cbe)) → new_esEs6(zzz5001, zzz4001, cbd, cbe)
new_compare0([], [], bc) → EQ
new_pePe(True, zzz315) → True
new_compare15(zzz1900, zzz19700) → new_compare24(zzz1900, zzz19700, new_esEs9(zzz1900, zzz19700))
new_primEqNat0(Zero, Zero) → True
new_lt6(zzz1900, zzz19700, ty_Bool) → new_lt15(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Double) → new_ltEs17(zzz1901, zzz19701)
new_esEs20(zzz1900, zzz19700, ty_Int) → new_esEs11(zzz1900, zzz19700)
new_esEs26(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Ordering) → new_ltEs4(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(app(ty_Either, dcg), dch)) → new_lt16(zzz19010, zzz197010, dcg, dch)
new_esEs25(zzz5000, zzz4000, app(ty_[], ccb)) → new_esEs18(zzz5000, zzz4000, ccb)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_esEs12(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_lt19(zzz19011, zzz197011, ty_Ordering) → new_lt5(zzz19011, zzz197011)
new_esEs24(zzz5001, zzz4001, app(ty_[], cah)) → new_esEs18(zzz5001, zzz4001, cah)
new_ltEs5(True, True) → True
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Maybe, dd), de) → new_ltEs8(zzz19010, zzz197010, dd)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Ordering, cdc) → new_esEs8(zzz5000, zzz4000)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Maybe, eh)) → new_ltEs8(zzz19010, zzz197010, eh)
new_esEs26(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(app(app(ty_@3, bbe), bbf), bbg)) → new_ltEs9(zzz1901, zzz19701, bbe, bbf, bbg)
new_esEs8(GT, GT) → True
new_compare5(zzz19000, zzz197000, ty_Float) → new_compare13(zzz19000, zzz197000)
new_esEs25(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, app(app(ty_Either, cfd), cfe)) → new_esEs7(zzz5000, zzz4000, cfd, cfe)
new_lt21(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_esEs22(zzz19010, zzz197010, app(ty_[], bgb)) → new_esEs18(zzz19010, zzz197010, bgb)
new_ltEs9(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), bbe, bbf, bbg) → new_pePe(new_lt20(zzz19010, zzz197010, bbe), new_asAs(new_esEs22(zzz19010, zzz197010, bbe), new_pePe(new_lt19(zzz19011, zzz197011, bbf), new_asAs(new_esEs21(zzz19011, zzz197011, bbf), new_ltEs19(zzz19012, zzz197012, bbg)))))
new_lt20(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Int) → new_ltEs15(zzz19011, zzz197011)
new_gt(zzz1890, zzz18940, cch, cda) → new_esEs8(new_compare12(zzz1890, zzz18940, cch, cda), GT)
new_lt21(zzz19010, zzz197010, app(ty_Ratio, dcc)) → new_lt10(zzz19010, zzz197010, dcc)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Integer) → new_ltEs11(zzz19011, zzz197011)
new_esEs20(zzz1900, zzz19700, ty_Ordering) → new_esEs8(zzz1900, zzz19700)
new_esEs23(zzz5002, zzz4002, ty_Ordering) → new_esEs8(zzz5002, zzz4002)
new_ltEs5(False, False) → True
new_ltEs18(zzz1901, zzz19701, app(app(ty_Either, eg), de)) → new_ltEs7(zzz1901, zzz19701, eg, de)
new_ltEs19(zzz19012, zzz197012, app(app(app(ty_@3, bdb), bdc), bdd)) → new_ltEs9(zzz19012, zzz197012, bdb, bdc, bdd)
new_ltEs20(zzz19011, zzz197011, app(app(app(ty_@3, daf), dag), dah)) → new_ltEs9(zzz19011, zzz197011, daf, dag, dah)
new_lt4(zzz1900, zzz19700) → new_esEs8(new_compare10(zzz1900, zzz19700), LT)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Bool, de) → new_ltEs5(zzz19010, zzz197010)
new_ltEs13(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bca, bcb) → new_pePe(new_lt21(zzz19010, zzz197010, bca), new_asAs(new_esEs27(zzz19010, zzz197010, bca), new_ltEs20(zzz19011, zzz197011, bcb)))
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_[], beh)) → new_esEs18(zzz19011, zzz197011, beh)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Integer, cdc) → new_esEs15(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Left(zzz197010), eg, de) → False
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_@2, cec), ced), cdc) → new_esEs6(zzz5000, zzz4000, cec, ced)
new_ltEs19(zzz19012, zzz197012, ty_Ordering) → new_ltEs4(zzz19012, zzz197012)
new_primEqInt(Neg(Zero), Neg(Succ(zzz40000))) → False
new_primEqInt(Neg(Succ(zzz50000)), Neg(Zero)) → False
new_compare10(Integer(zzz19000), Integer(zzz197000)) → new_primCmpInt(zzz19000, zzz197000)
new_esEs8(EQ, EQ) → True
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_Either, dac), dad)) → new_ltEs7(zzz19010, zzz197010, dac, dad)
new_compare19(zzz1900, zzz19700, False, cf, cg, da) → GT
new_esEs26(zzz5000, zzz4000, app(ty_[], cge)) → new_esEs18(zzz5000, zzz4000, cge)
new_esEs22(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_esEs5(zzz19010, zzz197010, bff, bfg, bfh)
new_compare113(zzz286, zzz287, zzz288, zzz289, True, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc)
new_esEs20(zzz1900, zzz19700, ty_@0) → new_esEs19(zzz1900, zzz19700)
new_esEs19(@0, @0) → True
new_esEs26(zzz5000, zzz4000, app(app(ty_Either, cgg), cgh)) → new_esEs7(zzz5000, zzz4000, cgg, cgh)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Ordering) → new_ltEs4(zzz1901, zzz19701)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_ltEs4(EQ, LT) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_Either, ddh), dea)) → new_esEs7(zzz5000, zzz4000, ddh, dea)
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt19(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_lt16(zzz19011, zzz197011, bfc, bfd)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, app(app(ty_@2, cff), cfg)) → new_esEs6(zzz5000, zzz4000, cff, cfg)
new_esEs22(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_@0) → new_compare8(zzz19000, zzz197000)
new_esEs22(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_esEs4(zzz19010, zzz197010, bfe)
new_lt21(zzz19010, zzz197010, app(app(app(ty_@3, dbh), dca), dcb)) → new_lt8(zzz19010, zzz197010, dbh, dca, dcb)
new_esEs25(zzz5000, zzz4000, app(ty_Maybe, ccc)) → new_esEs4(zzz5000, zzz4000, ccc)
new_compare112(zzz1900, zzz19700, True) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Float, de) → new_ltEs14(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Bool) → new_ltEs5(zzz1901, zzz19701)
new_primEqInt(Pos(Succ(zzz50000)), Pos(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs12(zzz5001, zzz4001, app(app(app(ty_@3, gg), gh), ha)) → new_esEs5(zzz5001, zzz4001, gg, gh, ha)
new_compare27(zzz1900, zzz19700, True, bcg, bch) → EQ
new_lt19(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_lt12(zzz19011, zzz197011, bfa, bfb)
new_ltEs20(zzz19011, zzz197011, ty_Float) → new_ltEs14(zzz19011, zzz197011)
new_ltEs18(zzz1901, zzz19701, ty_@0) → new_ltEs10(zzz1901, zzz19701)
new_esEs23(zzz5002, zzz4002, ty_Char) → new_esEs17(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_primEqNat0(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat0(zzz50000, zzz40000)
new_esEs27(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, app(ty_[], cfb)) → new_esEs18(zzz5000, zzz4000, cfb)
new_esEs23(zzz5002, zzz4002, app(ty_Ratio, bhb)) → new_esEs14(zzz5002, zzz4002, bhb)
new_esEs13(zzz5000, zzz4000, app(app(app(ty_@3, baa), bab), bac)) → new_esEs5(zzz5000, zzz4000, baa, bab, bac)
new_compare5(zzz19000, zzz197000, ty_Int) → new_compare14(zzz19000, zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_esEs14(:%(zzz5000, zzz5001), :%(zzz4000, zzz4001), ded) → new_asAs(new_esEs29(zzz5000, zzz4000, ded), new_esEs28(zzz5001, zzz4001, ded))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, ddc), ddd), dde)) → new_esEs5(zzz5000, zzz4000, ddc, ddd, dde)
new_ltEs20(zzz19011, zzz197011, ty_Char) → new_ltEs16(zzz19011, zzz197011)
new_esEs22(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_lt10(zzz1900, zzz19700, bcd) → new_esEs8(new_compare11(zzz1900, zzz19700, bcd), LT)
new_ltEs4(GT, EQ) → False
new_primCompAux00(zzz323, LT) → LT
new_esEs25(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_lt6(zzz1900, zzz19700, ty_Integer) → new_lt4(zzz1900, zzz19700)
new_esEs28(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_compare114(zzz1900, zzz19700, True, bcg, bch) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Int, de) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(app(ty_Either, bea), beb)) → new_ltEs7(zzz19012, zzz197012, bea, beb)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_esEs7(Right(zzz5000), Right(zzz4000), cee, app(ty_Ratio, cef)) → new_esEs14(zzz5000, zzz4000, cef)
new_ltEs8(Just(zzz19010), Nothing, bbd) → False
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs27(zzz19010, zzz197010, app(app(app(ty_@3, dbh), dca), dcb)) → new_esEs5(zzz19010, zzz197010, dbh, dca, dcb)
new_esEs21(zzz19011, zzz197011, ty_Int) → new_esEs11(zzz19011, zzz197011)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Succ(zzz50000)), Pos(Zero)) → False
new_esEs27(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_ltEs4(EQ, EQ) → True
new_ltEs18(zzz1901, zzz19701, ty_Integer) → new_ltEs11(zzz1901, zzz19701)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Ratio, chg)) → new_ltEs6(zzz19010, zzz197010, chg)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_ltEs4(GT, LT) → False
new_sr0(Integer(zzz1970000), Integer(zzz190010)) → Integer(new_primMulInt(zzz1970000, zzz190010))
new_primEqInt(Neg(Succ(zzz50000)), Pos(zzz4000)) → False
new_primEqInt(Pos(Succ(zzz50000)), Neg(zzz4000)) → False
new_compare24(zzz1900, zzz19700, False) → new_compare111(zzz1900, zzz19700, new_ltEs5(zzz1900, zzz19700))
new_ltEs5(False, True) → True
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_@2, deb), dec)) → new_esEs6(zzz5000, zzz4000, deb, dec)
new_lt16(zzz1900, zzz19700, bcg, bch) → new_esEs8(new_compare16(zzz1900, zzz19700, bcg, bch), LT)
new_esEs22(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_esEs6(zzz19010, zzz197010, bgc, bgd)
new_compare7(zzz1900, zzz19700, cf, cg, da) → new_compare26(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Ordering, de) → new_ltEs4(zzz19010, zzz197010)
new_compare9(zzz1900, zzz19700) → new_compare28(zzz1900, zzz19700, new_esEs8(zzz1900, zzz19700))
new_primEqInt(Neg(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz40000))) → False
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Char, de) → new_ltEs16(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Integer) → new_esEs15(zzz19011, zzz197011)
new_esEs18(:(zzz5000, zzz5001), :(zzz4000, zzz4001), cfh) → new_asAs(new_esEs26(zzz5000, zzz4000, cfh), new_esEs18(zzz5001, zzz4001, cfh))
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCompAux00(zzz323, EQ) → zzz323
new_esEs7(Right(zzz5000), Right(zzz4000), cee, app(ty_Maybe, cfc)) → new_esEs4(zzz5000, zzz4000, cfc)
new_compare24(zzz1900, zzz19700, True) → EQ
new_lt21(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_esEs13(zzz5000, zzz4000, app(ty_[], bad)) → new_esEs18(zzz5000, zzz4000, bad)
new_lt17(zzz1900, zzz19700) → new_esEs8(new_compare17(zzz1900, zzz19700), LT)
new_esEs26(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Double) → new_esEs10(zzz19011, zzz197011)
new_ltEs19(zzz19012, zzz197012, app(app(ty_@2, bdg), bdh)) → new_ltEs13(zzz19012, zzz197012, bdg, bdh)
new_compare13(Float(zzz19000, zzz19001), Float(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_not(False) → True
new_compare114(zzz1900, zzz19700, False, bcg, bch) → GT
new_esEs11(zzz500, zzz400) → new_primEqInt(zzz500, zzz400)
new_compare5(zzz19000, zzz197000, app(app(ty_@2, cb), cc)) → new_compare12(zzz19000, zzz197000, cb, cc)
new_lt20(zzz19010, zzz197010, app(ty_[], bgb)) → new_lt11(zzz19010, zzz197010, bgb)
new_esEs13(zzz5000, zzz4000, app(app(ty_Either, baf), bag)) → new_esEs7(zzz5000, zzz4000, baf, bag)
new_ltEs17(zzz1901, zzz19701) → new_not(new_esEs8(new_compare18(zzz1901, zzz19701), GT))
new_lt20(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_esEs26(zzz5000, zzz4000, app(ty_Ratio, cga)) → new_esEs14(zzz5000, zzz4000, cga)
new_esEs23(zzz5002, zzz4002, app(app(ty_@2, cab), cac)) → new_esEs6(zzz5002, zzz4002, cab, cac)
new_esEs13(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs25(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_ltEs19(zzz19012, zzz197012, app(ty_[], bdf)) → new_ltEs12(zzz19012, zzz197012, bdf)
new_lt6(zzz1900, zzz19700, app(ty_[], bc)) → new_lt11(zzz1900, zzz19700, bc)
new_lt20(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_lt16(zzz19010, zzz197010, bge, bgf)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_[], ff)) → new_ltEs12(zzz19010, zzz197010, ff)
new_compare0(:(zzz19000, zzz19001), [], bc) → GT
new_lt21(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_compare28(zzz1900, zzz19700, True) → EQ
new_lt19(zzz19011, zzz197011, ty_Integer) → new_lt4(zzz19011, zzz197011)
new_esEs27(zzz19010, zzz197010, app(ty_[], dcd)) → new_esEs18(zzz19010, zzz197010, dcd)
new_esEs9(True, True) → True
new_esEs27(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_esEs5(zzz1900, zzz19700, cf, cg, da)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs21(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_esEs5(zzz19011, zzz197011, bed, bee, bef)
new_lt19(zzz19011, zzz197011, ty_Char) → new_lt17(zzz19011, zzz197011)
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Integer) → new_compare10(new_sr0(zzz19000, zzz197001), new_sr0(zzz197000, zzz19001))
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Ratio, cdb), cdc) → new_esEs14(zzz5000, zzz4000, cdb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs27(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(ty_Maybe, bda)) → new_ltEs8(zzz19012, zzz197012, bda)
new_esEs27(zzz19010, zzz197010, app(app(ty_@2, dce), dcf)) → new_esEs6(zzz19010, zzz197010, dce, dcf)
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_ltEs19(zzz19012, zzz197012, app(ty_Ratio, bde)) → new_ltEs6(zzz19012, zzz197012, bde)
new_esEs20(zzz1900, zzz19700, ty_Integer) → new_esEs15(zzz1900, zzz19700)
new_lt9(zzz1900, zzz19700) → new_esEs8(new_compare8(zzz1900, zzz19700), LT)
new_primEqNat0(Succ(zzz50000), Zero) → False
new_primEqNat0(Zero, Succ(zzz40000)) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_lt12(zzz19010, zzz197010, bgc, bgd)
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_Either, ee), ef), de) → new_ltEs7(zzz19010, zzz197010, ee, ef)
new_compare25(zzz190, zzz1970, True, bbb, bbc) → EQ
new_esEs24(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs4(Nothing, Nothing, dda) → True
new_lt19(zzz19011, zzz197011, app(ty_[], beh)) → new_lt11(zzz19011, zzz197011, beh)
new_ltEs6(zzz1901, zzz19701, gc) → new_not(new_esEs8(new_compare11(zzz1901, zzz19701, gc), GT))
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Char, cdc) → new_esEs17(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Bool) → new_esEs9(zzz19011, zzz197011)
new_esEs12(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_esEs23(zzz5002, zzz4002, ty_Int) → new_esEs11(zzz5002, zzz4002)
new_lt20(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, ty_Ordering) → new_lt5(zzz1900, zzz19700)
new_esEs27(zzz19010, zzz197010, app(ty_Maybe, dbg)) → new_esEs4(zzz19010, zzz197010, dbg)
new_esEs21(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_esEs7(zzz19011, zzz197011, bfc, bfd)
new_ltEs20(zzz19011, zzz197011, ty_Double) → new_ltEs17(zzz19011, zzz197011)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_ltEs4(LT, GT) → True
new_lt15(zzz1900, zzz19700) → new_esEs8(new_compare15(zzz1900, zzz19700), LT)
new_lt21(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Char) → new_esEs17(zzz19011, zzz197011)
new_ltEs12(zzz1901, zzz19701, bbh) → new_not(new_esEs8(new_compare0(zzz1901, zzz19701, bbh), GT))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs20(zzz1900, zzz19700, ty_Bool) → new_esEs9(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_esEs25(zzz5000, zzz4000, app(ty_Ratio, cbf)) → new_esEs14(zzz5000, zzz4000, cbf)
new_lt20(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Float) → new_ltEs14(zzz1901, zzz19701)
new_compare5(zzz19000, zzz197000, ty_Integer) → new_compare10(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, app(app(ty_@2, bah), bba)) → new_esEs6(zzz5000, zzz4000, bah, bba)
new_lt6(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_lt16(zzz1900, zzz19700, bcg, bch)
new_esEs24(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, app(app(ty_Either, hd), he)) → new_esEs7(zzz5001, zzz4001, hd, he)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Integer, de) → new_ltEs11(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Integer) → new_ltEs11(zzz19012, zzz197012)
new_esEs25(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_esEs4(zzz19011, zzz197011, bec)
new_esEs9(False, True) → False
new_esEs9(True, False) → False
new_esEs20(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_esEs7(zzz1900, zzz19700, bcg, bch)
new_esEs27(zzz19010, zzz197010, app(ty_Ratio, dcc)) → new_esEs14(zzz19010, zzz197010, dcc)
new_compare29(zzz1900, zzz19700, True, bcc) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_ltEs4(LT, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Maybe, chc)) → new_ltEs8(zzz19010, zzz197010, chc)
new_lt20(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_lt7(zzz19010, zzz197010, bfe)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_Either, ga), gb)) → new_ltEs7(zzz19010, zzz197010, ga, gb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, app(ty_Maybe, hc)) → new_esEs4(zzz5001, zzz4001, hc)
new_asAs(False, zzz239) → False
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Int) → new_compare14(new_sr(zzz19000, zzz197001), new_sr(zzz197000, zzz19001))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, app(ty_Ratio, hh)) → new_esEs14(zzz5000, zzz4000, hh)
new_compare12(zzz1900, zzz19700, bce, bcf) → new_compare25(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, bce, bcf), bce, bcf)
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Float) → new_ltEs14(zzz19012, zzz197012)
new_esEs18([], [], cfh) → True
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Ordering) → new_esEs8(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_[], ddf)) → new_esEs18(zzz5000, zzz4000, ddf)
new_lt19(zzz19011, zzz197011, ty_Double) → new_lt18(zzz19011, zzz197011)
new_esEs29(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, ty_Char) → new_ltEs16(zzz19012, zzz197012)
new_ltEs19(zzz19012, zzz197012, ty_@0) → new_ltEs10(zzz19012, zzz197012)
new_esEs20(zzz1900, zzz19700, ty_Float) → new_esEs16(zzz1900, zzz19700)
new_lt11(zzz1900, zzz19700, bc) → new_esEs8(new_compare0(zzz1900, zzz19700, bc), LT)
new_lt13(zzz1900, zzz19700) → new_esEs8(new_compare13(zzz1900, zzz19700), LT)
new_esEs28(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_lt20(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare110(zzz286, zzz287, zzz288, zzz289, False, db, dc) → GT
new_esEs5(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), bgg, bgh, bha) → new_asAs(new_esEs25(zzz5000, zzz4000, bgg), new_asAs(new_esEs24(zzz5001, zzz4001, bgh), new_esEs23(zzz5002, zzz4002, bha)))
new_ltEs18(zzz1901, zzz19701, app(app(ty_@2, bca), bcb)) → new_ltEs13(zzz1901, zzz19701, bca, bcb)
new_esEs26(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Integer) → new_esEs15(zzz5002, zzz4002)
new_lt19(zzz19011, zzz197011, ty_Bool) → new_lt15(zzz19011, zzz197011)
new_compare5(zzz19000, zzz197000, ty_Bool) → new_compare15(zzz19000, zzz197000)
new_esEs9(False, False) → True
new_ltEs19(zzz19012, zzz197012, ty_Bool) → new_ltEs5(zzz19012, zzz197012)
new_esEs22(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, app(ty_Maybe, bd)) → new_compare6(zzz19000, zzz197000, bd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_@2, ec), ed), de) → new_ltEs13(zzz19010, zzz197010, ec, ed)
new_ltEs20(zzz19011, zzz197011, app(app(ty_Either, dbe), dbf)) → new_ltEs7(zzz19011, zzz197011, dbe, dbf)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(app(ty_@3, fa), fb), fc)) → new_ltEs9(zzz19010, zzz197010, fa, fb, fc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_[], eb), de) → new_ltEs12(zzz19010, zzz197010, eb)
new_esEs7(Right(zzz5000), Right(zzz4000), cee, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(ty_Maybe, bbd)) → new_ltEs8(zzz1901, zzz19701, bbd)
new_ltEs4(LT, LT) → True
new_ltEs19(zzz19012, zzz197012, ty_Int) → new_ltEs15(zzz19012, zzz197012)
new_ltEs8(Nothing, Nothing, bbd) → True
new_ltEs10(zzz1901, zzz19701) → new_not(new_esEs8(new_compare8(zzz1901, zzz19701), GT))
new_esEs23(zzz5002, zzz4002, ty_Double) → new_esEs10(zzz5002, zzz4002)
new_esEs25(zzz5000, zzz4000, app(app(app(ty_@3, cbg), cbh), cca)) → new_esEs5(zzz5000, zzz4000, cbg, cbh, cca)
new_ltEs20(zzz19011, zzz197011, app(ty_Ratio, dba)) → new_ltEs6(zzz19011, zzz197011, dba)
new_lt5(zzz1900, zzz19700) → new_esEs8(new_compare9(zzz1900, zzz19700), LT)
new_compare112(zzz1900, zzz19700, False) → GT
new_esEs12(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_lt12(zzz1900, zzz19700, bce, bcf) → new_esEs8(new_compare12(zzz1900, zzz19700, bce, bcf), LT)
new_esEs12(zzz5001, zzz4001, app(ty_Ratio, gf)) → new_esEs14(zzz5001, zzz4001, gf)
new_compare5(zzz19000, zzz197000, ty_Ordering) → new_compare9(zzz19000, zzz197000)
new_lt6(zzz1900, zzz19700, ty_Float) → new_lt13(zzz1900, zzz19700)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_compare5(zzz19000, zzz197000, app(app(app(ty_@3, be), bf), bg)) → new_compare7(zzz19000, zzz197000, be, bf, bg)
new_esEs20(zzz1900, zzz19700, ty_Char) → new_esEs17(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_compare26(zzz1900, zzz19700, True, cf, cg, da) → EQ
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_esEs22(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_lt7(zzz1900, zzz19700, bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_@2, daa), dab)) → new_ltEs13(zzz19010, zzz197010, daa, dab)
new_lt6(zzz1900, zzz19700, ty_Int) → new_lt14(zzz1900, zzz19700)
new_compare0([], :(zzz197000, zzz197001), bc) → LT
new_esEs12(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs13(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_asAs(True, zzz239) → zzz239
new_esEs25(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_@0, cdc) → new_esEs19(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(app(app(ty_@3, cgb), cgc), cgd)) → new_esEs5(zzz5000, zzz4000, cgb, cgc, cgd)
new_esEs27(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Double) → new_compare18(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt20(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_lt10(zzz19010, zzz197010, bga)
new_lt6(zzz1900, zzz19700, ty_Char) → new_lt17(zzz1900, zzz19700)
new_lt19(zzz19011, zzz197011, ty_@0) → new_lt9(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare8(@0, @0) → EQ
new_ltEs11(zzz1901, zzz19701) → new_not(new_esEs8(new_compare10(zzz1901, zzz19701), GT))
new_esEs26(zzz5000, zzz4000, app(app(ty_@2, cha), chb)) → new_esEs6(zzz5000, zzz4000, cha, chb)
new_lt20(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_primCompAux0(zzz19000, zzz197000, zzz316, bc) → new_primCompAux00(zzz316, new_compare5(zzz19000, zzz197000, bc))
new_esEs23(zzz5002, zzz4002, app(app(app(ty_@3, bhc), bhd), bhe)) → new_esEs5(zzz5002, zzz4002, bhc, bhd, bhe)
new_ltEs18(zzz1901, zzz19701, app(ty_[], bbh)) → new_ltEs12(zzz1901, zzz19701, bbh)
new_ltEs20(zzz19011, zzz197011, app(app(ty_@2, dbc), dbd)) → new_ltEs13(zzz19011, zzz197011, dbc, dbd)
new_compare5(zzz19000, zzz197000, app(app(ty_Either, cd), ce)) → new_compare16(zzz19000, zzz197000, cd, ce)
new_lt18(zzz1900, zzz19700) → new_esEs8(new_compare18(zzz1900, zzz19700), LT)
new_compare28(zzz1900, zzz19700, False) → new_compare112(zzz1900, zzz19700, new_ltEs4(zzz1900, zzz19700))
new_lt21(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_ltEs4(GT, GT) → True
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Ratio, fd)) → new_ltEs6(zzz19010, zzz197010, fd)
new_esEs23(zzz5002, zzz4002, app(ty_[], bhf)) → new_esEs18(zzz5002, zzz4002, bhf)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_[], chh)) → new_ltEs12(zzz19010, zzz197010, chh)
new_esEs20(zzz1900, zzz19700, ty_Double) → new_esEs10(zzz1900, zzz19700)
new_primCompAux00(zzz323, GT) → GT
new_esEs25(zzz5000, zzz4000, app(app(ty_Either, ccd), cce)) → new_esEs7(zzz5000, zzz4000, ccd, cce)
new_compare6(zzz1900, zzz19700, bcc) → new_compare29(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, bcc), bcc)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Float, cdc) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Float) → new_esEs16(zzz19011, zzz197011)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_lt6(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_lt12(zzz1900, zzz19700, bce, bcf)
new_lt19(zzz19011, zzz197011, ty_Int) → new_lt14(zzz19011, zzz197011)
new_esEs10(Double(zzz5000, zzz5001), Double(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Double, de) → new_ltEs17(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Int) → new_ltEs15(zzz1901, zzz19701)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_esEs27(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, app(app(ty_@2, hf), hg)) → new_esEs6(zzz5001, zzz4001, hf, hg)
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_not(True) → False
new_compare5(zzz19000, zzz197000, app(ty_[], ca)) → new_compare0(zzz19000, zzz197000, ca)

The set Q consists of the following terms:

new_lt6(x0, x1, ty_Float)
new_compare25(@2(x0, x1), @2(x2, x3), False, x4, x5)
new_esEs22(x0, x1, ty_Char)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, ty_Integer)
new_compare5(x0, x1, app(ty_Ratio, x2))
new_lt16(x0, x1, x2, x3)
new_esEs13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_esEs18(:(x0, x1), [], x2)
new_ltEs6(x0, x1, x2)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt6(x0, x1, ty_@0)
new_asAs(True, x0)
new_compare13(Float(x0, x1), Float(x2, x3))
new_esEs23(x0, x1, ty_@0)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_esEs4(Just(x0), Nothing, x1)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_primCmpNat0(Succ(x0), Zero)
new_ltEs18(x0, x1, ty_Ordering)
new_compare5(x0, x1, ty_Float)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs18([], [], x0)
new_compare0([], :(x0, x1), x2)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Integer)
new_esEs12(x0, x1, ty_Char)
new_esEs13(x0, x1, ty_Int)
new_lt19(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_compare0([], [], x0)
new_esEs4(Nothing, Just(x0), x1)
new_esEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs29(x0, x1, ty_Int)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Ordering)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_lt20(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Integer)
new_ltEs20(x0, x1, app(ty_[], x2))
new_esEs12(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs12(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs29(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs8(GT, GT)
new_esEs21(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Float)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, ty_Ordering)
new_compare26(x0, x1, False, x2, x3, x4)
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_compare29(x0, x1, False, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux00(x0, LT)
new_ltEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt6(x0, x1, ty_Bool)
new_lt10(x0, x1, x2)
new_esEs8(LT, LT)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs27(x0, x1, ty_Double)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs21(x0, x1, ty_Char)
new_ltEs18(x0, x1, ty_Bool)
new_ltEs7(Left(x0), Left(x1), ty_Integer, x2)
new_esEs18([], :(x0, x1), x2)
new_ltEs20(x0, x1, ty_Float)
new_ltEs5(False, False)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_compare8(@0, @0)
new_esEs26(x0, x1, ty_Int)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Integer)
new_compare115(x0, x1, True, x2)
new_esEs21(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_ltEs20(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_compare16(x0, x1, x2, x3)
new_esEs26(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Float)
new_esEs27(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Char, x2)
new_lt20(x0, x1, ty_Bool)
new_lt21(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare113(x0, x1, x2, x3, False, x4, x5, x6)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs16(x0, x1)
new_ltEs8(Nothing, Just(x0), x1)
new_primCompAux0(x0, x1, x2, x3)
new_lt11(x0, x1, x2)
new_ltEs18(x0, x1, ty_Integer)
new_compare114(x0, x1, False, x2, x3)
new_primEqNat0(Zero, Zero)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs12(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(True, True)
new_esEs21(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Int)
new_lt20(x0, x1, ty_@0)
new_esEs13(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Double)
new_lt4(x0, x1)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Integer)
new_lt6(x0, x1, ty_Int)
new_primMulNat0(Zero, Zero)
new_esEs27(x0, x1, app(ty_[], x2))
new_ltEs19(x0, x1, ty_Int)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_primCompAux00(x0, GT)
new_compare9(x0, x1)
new_ltEs7(Right(x0), Left(x1), x2, x3)
new_ltEs7(Left(x0), Right(x1), x2, x3)
new_ltEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_lt19(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_compare110(x0, x1, x2, x3, True, x4, x5)
new_ltEs17(x0, x1)
new_esEs23(x0, x1, ty_Float)
new_compare5(x0, x1, ty_Double)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(GT, GT)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_pePe(False, x0)
new_compare24(x0, x1, False)
new_compare5(x0, x1, ty_Ordering)
new_compare27(x0, x1, True, x2, x3)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_esEs28(x0, x1, ty_Int)
new_lt13(x0, x1)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Double)
new_compare17(Char(x0), Char(x1))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs12(x0, x1, ty_Float)
new_esEs13(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_compare19(x0, x1, True, x2, x3, x4)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_lt5(x0, x1)
new_esEs13(x0, x1, ty_Char)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs12(x0, x1, ty_Double)
new_compare10(Integer(x0), Integer(x1))
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs26(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primMulNat0(Succ(x0), Zero)
new_compare5(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare110(x0, x1, x2, x3, False, x4, x5)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare114(x0, x1, True, x2, x3)
new_primMulNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Char)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs20(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Ordering)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Integer)
new_primPlusNat0(Zero, Zero)
new_lt19(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Integer)
new_esEs13(x0, x1, app(ty_Ratio, x2))
new_esEs21(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_compare14(x0, x1)
new_esEs26(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs23(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Float)
new_ltEs13(@2(x0, x1), @2(x2, x3), x4, x5)
new_compare112(x0, x1, True)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs24(x0, x1, ty_@0)
new_ltEs18(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Float)
new_compare0(:(x0, x1), [], x2)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs12(x0, x1, ty_Int)
new_compare5(x0, x1, ty_Int)
new_compare29(x0, x1, True, x2)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Float)
new_ltEs4(EQ, EQ)
new_ltEs8(Nothing, Nothing, x0)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Float)
new_compare18(Double(x0, x1), Double(x2, x3))
new_esEs14(:%(x0, x1), :%(x2, x3), x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare5(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Double)
new_lt6(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Double)
new_ltEs4(LT, EQ)
new_lt21(x0, x1, ty_Double)
new_ltEs4(EQ, LT)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_sr0(Integer(x0), Integer(x1))
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_pePe(True, x0)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs12(x0, x1, x2)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs20(x0, x1, ty_Double)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt17(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_primPlusNat1(Zero, x0)
new_esEs22(x0, x1, ty_@0)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_compare111(x0, x1, True)
new_ltEs18(x0, x1, ty_Int)
new_lt21(x0, x1, app(ty_Ratio, x2))
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs20(x0, x1, ty_Int)
new_compare5(x0, x1, ty_@0)
new_compare113(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs27(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), x1)
new_ltEs14(x0, x1)
new_primEqNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs12(x0, x1, ty_Ordering)
new_ltEs7(Left(x0), Left(x1), ty_Double, x2)
new_ltEs18(x0, x1, ty_Double)
new_lt6(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_lt21(x0, x1, app(ty_[], x2))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs21(x0, x1, ty_Bool)
new_asAs(False, x0)
new_compare25(x0, x1, True, x2, x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Neg(Zero), Neg(Zero))
new_lt21(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_ltEs10(x0, x1)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs15(Integer(x0), Integer(x1))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_ltEs11(x0, x1)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs21(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_primPlusNat0(Zero, Succ(x0))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs13(x0, x1, ty_Ordering)
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(x0, x1, ty_Integer)
new_ltEs4(LT, LT)
new_esEs12(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare115(x0, x1, False, x2)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_esEs24(x0, x1, ty_Ordering)
new_compare5(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare7(x0, x1, x2, x3, x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs4(Nothing, Nothing, x0)
new_compare5(x0, x1, ty_Bool)
new_esEs20(x0, x1, ty_Float)
new_ltEs8(Just(x0), Nothing, x1)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs25(x0, x1, ty_Bool)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_primMulInt(Pos(x0), Pos(x1))
new_lt20(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_lt21(x0, x1, ty_@0)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt19(x0, x1, ty_Char)
new_esEs13(x0, x1, app(ty_[], x2))
new_lt8(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Bool)
new_ltEs15(x0, x1)
new_esEs12(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, ty_Int)
new_ltEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs24(x0, x1, ty_Double)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, ty_Integer)
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs22(x0, x1, ty_Bool)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, False)
new_ltEs20(x0, x1, ty_Bool)
new_esEs9(False, False)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Integer)
new_lt21(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Int)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs27(x0, x1, ty_@0)
new_esEs13(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_Int)
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_compare27(x0, x1, False, x2, x3)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_esEs25(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare15(x0, x1)
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_lt12(x0, x1, x2, x3)
new_esEs18(:(x0, x1), :(x2, x3), x4)
new_esEs13(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_compare111(x0, x1, False)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs13(x0, x1, ty_Float)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(True, True)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs17(Char(x0), Char(x1))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(EQ, GT)
new_ltEs4(GT, EQ)
new_esEs13(x0, x1, ty_@0)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_not(True)
new_esEs22(x0, x1, ty_Ordering)
new_esEs27(x0, x1, ty_Ordering)
new_esEs10(Double(x0, x1), Double(x2, x3))
new_compare6(x0, x1, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs11(x0, x1)
new_esEs27(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_primPlusNat0(Succ(x0), Zero)
new_ltEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Bool)
new_gt(x0, x1, x2, x3)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Int)
new_lt14(x0, x1)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs25(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_compare24(x0, x1, True)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Int)
new_esEs13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs9(False, True)
new_esEs9(True, False)
new_lt19(x0, x1, ty_Integer)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs25(x0, x1, ty_@0)
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs26(x0, x1, app(ty_[], x2))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt18(x0, x1)
new_lt7(x0, x1, x2)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs24(x0, x1, ty_Bool)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_primCmpNat0(Zero, Succ(x0))
new_ltEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_lt6(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_@0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Float)
new_compare26(x0, x1, True, x2, x3, x4)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, ty_Char)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, app(ty_Maybe, x2))
new_compare28(x0, x1, True)
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs20(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs20(x0, x1, ty_Ordering)
new_compare12(x0, x1, x2, x3)
new_lt21(x0, x1, app(ty_Maybe, x2))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux00(x0, EQ)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(@0, @0)
new_ltEs4(GT, LT)
new_ltEs4(LT, GT)
new_ltEs5(True, False)
new_compare19(x0, x1, False, x2, x3, x4)
new_ltEs5(False, True)
new_ltEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt9(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primEqNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_esEs12(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs20(x0, x1, ty_@0)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_compare28(x0, x1, False)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_deleteMin(zzz2430, zzz2431, zzz2432, Branch(zzz24330, zzz24331, zzz24332, zzz24333, zzz24334), zzz2434, h, ba, bb) → new_deleteMin(zzz24330, zzz24331, zzz24332, zzz24333, zzz24334, h, ba, bb)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_deleteMax(zzz2440, zzz2441, zzz2442, zzz2443, Branch(zzz24440, zzz24441, zzz24442, zzz24443, zzz24444), h, ba, bb) → new_deleteMax(zzz24440, zzz24441, zzz24442, zzz24443, zzz24444, h, ba, bb)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt22(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_primMulNat0(Zero, Zero) → Zero
new_lt22(zzz275, zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_esEs8(new_compare14(zzz275, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs8(GT, GT) → True
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs8(EQ, EQ) → True
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs8(LT, GT) → False
new_esEs8(GT, LT) → False
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_primPlusNat0(Zero, Zero) → Zero
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_esEs8(LT, EQ) → False
new_esEs8(EQ, LT) → False
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs8(LT, LT) → True
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_esEs8(EQ, GT) → False
new_esEs8(GT, EQ) → False
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
QDP
                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt22(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_lt22(zzz275, zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_esEs8(new_compare14(zzz275, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), h, ba, bb) at position [10] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
QDP
                                            ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt22(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_lt22(zzz275, zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_esEs8(new_compare14(zzz275, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
QDP
                                                ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt22(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_lt22(zzz275, zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_esEs8(new_compare14(zzz275, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_lt14(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
QDP
                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt22(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_lt22(zzz275, zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_esEs8(new_compare14(zzz275, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_lt22(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb), h, ba, bb) at position [10] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
QDP
                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_lt22(zzz275, zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_esEs8(new_compare14(zzz275, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
QDP
                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_lt22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
QDP
                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
QDP
                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
QDP
                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
QDP
                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_compare14(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
QDP
                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
QDP
                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
QDP
                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
QDP
                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sr(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
QDP
                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0,0] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
QDP
                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0,0] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
QDP
                                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
QDP
                                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sIZE_RATIO



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
QDP
                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
QDP
                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
QDP
                                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
QDP
                                                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
QDP
                                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
QDP
                                                                                                                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_glueVBal3Size_l(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
QDP
                                                                                                                                        ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
QDP
                                                                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), new_sizeFM(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
QDP
                                                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb)), LT), h, ba, bb) at position [10,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
QDP
                                                                                                                                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_glueVBal3Size_r(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, h, ba, bb) → new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
QDP
                                                                                                                                                        ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ QReductionProof
QDP
                                                                                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), new_sizeFM(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, h, ba, bb)), LT), h, ba, bb) at position [10,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ QReductionProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ Rewriting
QDP
                                                                                                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ QReductionProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ Rewriting
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ UsableRulesProof
QDP
                                                                                                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ QReductionProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ Rewriting
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ UsableRulesProof
                                                                                                                                                                  ↳ QDP
                                                                                                                                                                    ↳ QReductionProof
QDP
                                                                                                                                                                        ↳ QDPOrderProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, False, h, ba, bb) → new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2432), zzz2442), LT), h, ba, bb)
The remaining pairs can at least be oriented weakly.

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)
Used ordering: Polynomial interpretation [25]:

POL(Branch(x1, x2, x3, x4, x5)) = 1 + x1 + x2 + x5   
POL(EQ) = 0   
POL(False) = 0   
POL(GT) = 0   
POL(LT) = 0   
POL(Neg(x1)) = 0   
POL(Pos(x1)) = 0   
POL(Succ(x1)) = 0   
POL(True) = 0   
POL(Zero) = 0   
POL(new_esEs8(x1, x2)) = 0   
POL(new_glueVBal(x1, x2, x3, x4, x5)) = x1   
POL(new_glueVBal3GlueVBal1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)) = x10 + x7   
POL(new_glueVBal3GlueVBal2(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)) = 1 + x10 + x6 + x7   
POL(new_primCmpInt(x1, x2)) = 0   
POL(new_primCmpNat0(x1, x2)) = 0   
POL(new_primMulInt(x1, x2)) = 0   
POL(new_primMulNat0(x1, x2)) = 0   
POL(new_primPlusNat0(x1, x2)) = 0   
POL(new_primPlusNat1(x1, x2)) = 0   

The following usable rules [17] were oriented: none



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ QReductionProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ Rewriting
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ UsableRulesProof
                                                                                                                                                                  ↳ QDP
                                                                                                                                                                    ↳ QReductionProof
                                                                                                                                                                      ↳ QDP
                                                                                                                                                                        ↳ QDPOrderProof
QDP
                                                                                                                                                                            ↳ DependencyGraphProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(zzz2444, Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb)
new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ UsableRulesProof
                                              ↳ QDP
                                                ↳ QReductionProof
                                                  ↳ QDP
                                                    ↳ Rewriting
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ UsableRulesProof
                                                                          ↳ QDP
                                                                            ↳ QReductionProof
                                                                              ↳ QDP
                                                                                ↳ Rewriting
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Rewriting
                                                                                                  ↳ QDP
                                                                                                    ↳ Rewriting
                                                                                                      ↳ QDP
                                                                                                        ↳ UsableRulesProof
                                                                                                          ↳ QDP
                                                                                                            ↳ QReductionProof
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ Rewriting
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Rewriting
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QReductionProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ Rewriting
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ UsableRulesProof
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ QReductionProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ Rewriting
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ UsableRulesProof
                                                                                                                                                                  ↳ QDP
                                                                                                                                                                    ↳ QReductionProof
                                                                                                                                                                      ↳ QDP
                                                                                                                                                                        ↳ QDPOrderProof
                                                                                                                                                                          ↳ QDP
                                                                                                                                                                            ↳ DependencyGraphProof
QDP
                                                                                                                                                                                ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, True, h, ba, bb) → new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), zzz2433, h, ba, bb)
new_glueVBal(Branch(zzz2440, zzz2441, zzz2442, zzz2443, zzz2444), Branch(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434), h, ba, bb) → new_glueVBal3GlueVBal2(zzz2430, zzz2431, zzz2432, zzz2433, zzz2434, zzz2440, zzz2441, zzz2442, zzz2443, zzz2444, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz2442), zzz2432), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_addToFM_C(Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), zzz1890, zzz1891, h, ba, bb) → new_addToFM_C2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, new_lt12(zzz1890, zzz18940, h, ba), h, ba, bb)
new_addToFM_C1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, True, h, ba, bb) → new_addToFM_C(zzz18944, zzz1890, zzz1891, h, ba, bb)
new_addToFM_C2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, True, h, ba, bb) → new_addToFM_C(zzz18943, zzz1890, zzz1891, h, ba, bb)
new_addToFM_C2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, False, h, ba, bb) → new_addToFM_C1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, new_gt(zzz1890, zzz18940, h, ba), h, ba, bb)

The TRS R consists of the following rules:

new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Maybe, dde)) → new_esEs4(zzz5000, zzz4000, dde)
new_esEs23(zzz5002, zzz4002, app(app(ty_Either, bhh), caa)) → new_esEs7(zzz5002, zzz4002, bhh, caa)
new_lt7(zzz1900, zzz19700, bcc) → new_esEs8(new_compare6(zzz1900, zzz19700, bcc), LT)
new_lt21(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare17(Char(zzz19000), Char(zzz197000)) → new_primCmpNat0(zzz19000, zzz197000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_Either, cdg), cdh), cda) → new_esEs7(zzz5000, zzz4000, cdg, cdh)
new_ltEs14(zzz1901, zzz19701) → new_not(new_esEs8(new_compare13(zzz1901, zzz19701), GT))
new_esEs21(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_esEs6(zzz19011, zzz197011, bfa, bfb)
new_lt19(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_lt10(zzz19011, zzz197011, beg)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_ltEs4(EQ, GT) → True
new_esEs24(zzz5001, zzz4001, app(app(app(ty_@3, cae), caf), cag)) → new_esEs5(zzz5001, zzz4001, cae, caf, cag)
new_lt19(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_lt8(zzz19011, zzz197011, bed, bee, bef)
new_compare26(zzz1900, zzz19700, False, cf, cg, da) → new_compare19(zzz1900, zzz19700, new_ltEs9(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc) → LT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs17(Char(zzz5000), Char(zzz4000)) → new_primEqNat0(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_@0, de) → new_ltEs10(zzz19010, zzz197010)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Maybe, cdf), cda) → new_esEs4(zzz5000, zzz4000, cdf)
new_esEs24(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Double, cda) → new_esEs10(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Ratio, ea), de) → new_ltEs6(zzz19010, zzz197010, ea)
new_compare25(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, bbb, bbc) → new_compare113(zzz1900, zzz1901, zzz19700, zzz19701, new_lt6(zzz1900, zzz19700, bbb), new_asAs(new_esEs20(zzz1900, zzz19700, bbb), new_ltEs18(zzz1901, zzz19701, bbc)), bbb, bbc)
new_esEs24(zzz5001, zzz4001, app(ty_Maybe, cba)) → new_esEs4(zzz5001, zzz4001, cba)
new_esEs4(Nothing, Just(zzz4000), dcg) → False
new_esEs4(Just(zzz5000), Nothing, dcg) → False
new_esEs21(zzz19011, zzz197011, ty_@0) → new_esEs19(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_lt8(zzz19010, zzz197010, bff, bfg, bfh)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Ratio, dch)) → new_esEs14(zzz5000, zzz4000, dch)
new_esEs12(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_lt21(zzz19010, zzz197010, app(ty_Maybe, dbe)) → new_lt7(zzz19010, zzz197010, dbe)
new_compare27(zzz1900, zzz19700, False, bcg, bch) → new_compare114(zzz1900, zzz19700, new_ltEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs25(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Float) → new_esEs16(zzz5002, zzz4002)
new_ltEs20(zzz19011, zzz197011, ty_Bool) → new_ltEs5(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Char) → new_compare17(zzz19000, zzz197000)
new_ltEs7(Left(zzz19010), Right(zzz197010), eg, de) → True
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, cdb), cdc), cdd), cda) → new_esEs5(zzz5000, zzz4000, cdb, cdc, cdd)
new_esEs6(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), gd, ge) → new_asAs(new_esEs13(zzz5000, zzz4000, gd), new_esEs12(zzz5001, zzz4001, ge))
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs27(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_esEs4(zzz1900, zzz19700, bcc)
new_lt20(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_compare5(zzz19000, zzz197000, app(ty_Ratio, bh)) → new_compare11(zzz19000, zzz197000, bh)
new_esEs22(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, app(ty_Maybe, dac)) → new_ltEs8(zzz19011, zzz197011, dac)
new_ltEs18(zzz1901, zzz19701, ty_Char) → new_ltEs16(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(ty_[], hb)) → new_esEs18(zzz5001, zzz4001, hb)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_[], cde), cda) → new_esEs18(zzz5000, zzz4000, cde)
new_esEs24(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Bool, cda) → new_esEs9(zzz5000, zzz4000)
new_lt21(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_compare16(zzz1900, zzz19700, bcg, bch) → new_compare27(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs23(zzz5002, zzz4002, app(ty_Maybe, bhg)) → new_esEs4(zzz5002, zzz4002, bhg)
new_ltEs18(zzz1901, zzz19701, app(ty_Ratio, gc)) → new_ltEs6(zzz1901, zzz19701, gc)
new_esEs13(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs20(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_esEs14(zzz1900, zzz19700, bcd)
new_esEs23(zzz5002, zzz4002, ty_Bool) → new_esEs9(zzz5002, zzz4002)
new_compare18(Double(zzz19000, zzz19001), Double(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(app(ty_@3, cee), cef), ceg)) → new_esEs5(zzz5000, zzz4000, cee, cef, ceg)
new_compare113(zzz286, zzz287, zzz288, zzz289, False, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, zzz291, db, dc)
new_lt6(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_lt10(zzz1900, zzz19700, bcd)
new_lt19(zzz19011, zzz197011, ty_Float) → new_lt13(zzz19011, zzz197011)
new_compare0(:(zzz19000, zzz19001), :(zzz197000, zzz197001), bc) → new_primCompAux0(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, bc), bc)
new_esEs22(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_esEs14(zzz19010, zzz197010, bga)
new_esEs21(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_esEs14(zzz19011, zzz197011, beg)
new_esEs15(Integer(zzz5000), Integer(zzz4000)) → new_primEqInt(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(ty_Maybe, cgd)) → new_esEs4(zzz5000, zzz4000, cgd)
new_esEs20(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_esEs6(zzz1900, zzz19700, bce, bcf)
new_esEs22(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_esEs7(zzz19010, zzz197010, bge, bgf)
new_lt6(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_lt8(zzz1900, zzz19700, cf, cg, da)
new_esEs29(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare29(zzz1900, zzz19700, False, bcc) → new_compare115(zzz1900, zzz19700, new_ltEs8(zzz1900, zzz19700, bcc), bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, chb), chc), chd)) → new_ltEs9(zzz19010, zzz197010, chb, chc, chd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, df), dg), dh), de) → new_ltEs9(zzz19010, zzz197010, df, dg, dh)
new_lt21(zzz19010, zzz197010, app(app(ty_@2, dcc), dcd)) → new_lt12(zzz19010, zzz197010, dcc, dcd)
new_pePe(False, zzz315) → zzz315
new_esEs24(zzz5001, zzz4001, app(ty_Ratio, cad)) → new_esEs14(zzz5001, zzz4001, cad)
new_esEs23(zzz5002, zzz4002, ty_@0) → new_esEs19(zzz5002, zzz4002)
new_esEs27(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Left(zzz4000), cec, cda) → False
new_esEs7(Left(zzz5000), Right(zzz4000), cec, cda) → False
new_esEs18([], :(zzz4000, zzz4001), cff) → False
new_esEs18(:(zzz5000, zzz5001), [], cff) → False
new_ltEs16(zzz1901, zzz19701) → new_not(new_esEs8(new_compare17(zzz1901, zzz19701), GT))
new_lt21(zzz19010, zzz197010, app(ty_[], dcb)) → new_lt11(zzz19010, zzz197010, dcb)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_@2, fg), fh)) → new_ltEs13(zzz19010, zzz197010, fg, fh)
new_lt19(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_lt7(zzz19011, zzz197011, bec)
new_esEs27(zzz19010, zzz197010, app(app(ty_Either, dce), dcf)) → new_esEs7(zzz19010, zzz197010, dce, dcf)
new_compare19(zzz1900, zzz19700, True, cf, cg, da) → LT
new_ltEs20(zzz19011, zzz197011, ty_@0) → new_ltEs10(zzz19011, zzz197011)
new_esEs13(zzz5000, zzz4000, app(ty_Maybe, bae)) → new_esEs4(zzz5000, zzz4000, bae)
new_esEs26(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs15(zzz1901, zzz19701) → new_not(new_esEs8(new_compare14(zzz1901, zzz19701), GT))
new_esEs22(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_lt8(zzz1900, zzz19700, cf, cg, da) → new_esEs8(new_compare7(zzz1900, zzz19700, cf, cg, da), LT)
new_esEs20(zzz1900, zzz19700, app(ty_[], bc)) → new_esEs18(zzz1900, zzz19700, bc)
new_compare111(zzz1900, zzz19700, False) → GT
new_compare111(zzz1900, zzz19700, True) → LT
new_esEs22(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_ltEs20(zzz19011, zzz197011, app(ty_[], dah)) → new_ltEs12(zzz19011, zzz197011, dah)
new_lt6(zzz1900, zzz19700, ty_@0) → new_lt9(zzz1900, zzz19700)
new_ltEs19(zzz19012, zzz197012, ty_Double) → new_ltEs17(zzz19012, zzz197012)
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_compare115(zzz1900, zzz19700, False, bcc) → GT
new_ltEs8(Nothing, Just(zzz197010), bbd) → True
new_esEs25(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs16(Float(zzz5000, zzz5001), Float(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_esEs25(zzz5000, zzz4000, app(app(ty_@2, ccf), ccg)) → new_esEs6(zzz5000, zzz4000, ccf, ccg)
new_esEs8(LT, LT) → True
new_lt6(zzz1900, zzz19700, ty_Double) → new_lt18(zzz1900, zzz19700)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Int, cda) → new_esEs11(zzz5000, zzz4000)
new_compare115(zzz1900, zzz19700, True, bcc) → LT
new_esEs25(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_Either, cbb), cbc)) → new_esEs7(zzz5001, zzz4001, cbb, cbc)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_ltEs5(True, False) → False
new_lt21(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_@2, cbd), cbe)) → new_esEs6(zzz5001, zzz4001, cbd, cbe)
new_compare0([], [], bc) → EQ
new_pePe(True, zzz315) → True
new_compare15(zzz1900, zzz19700) → new_compare24(zzz1900, zzz19700, new_esEs9(zzz1900, zzz19700))
new_primEqNat0(Zero, Zero) → True
new_lt6(zzz1900, zzz19700, ty_Bool) → new_lt15(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Double) → new_ltEs17(zzz1901, zzz19701)
new_esEs20(zzz1900, zzz19700, ty_Int) → new_esEs11(zzz1900, zzz19700)
new_esEs26(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Ordering) → new_ltEs4(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(app(ty_Either, dce), dcf)) → new_lt16(zzz19010, zzz197010, dce, dcf)
new_esEs25(zzz5000, zzz4000, app(ty_[], ccb)) → new_esEs18(zzz5000, zzz4000, ccb)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_esEs12(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_lt19(zzz19011, zzz197011, ty_Ordering) → new_lt5(zzz19011, zzz197011)
new_esEs24(zzz5001, zzz4001, app(ty_[], cah)) → new_esEs18(zzz5001, zzz4001, cah)
new_ltEs5(True, True) → True
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Maybe, dd), de) → new_ltEs8(zzz19010, zzz197010, dd)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Ordering, cda) → new_esEs8(zzz5000, zzz4000)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Maybe, eh)) → new_ltEs8(zzz19010, zzz197010, eh)
new_esEs26(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(app(app(ty_@3, bbe), bbf), bbg)) → new_ltEs9(zzz1901, zzz19701, bbe, bbf, bbg)
new_esEs8(GT, GT) → True
new_compare5(zzz19000, zzz197000, ty_Float) → new_compare13(zzz19000, zzz197000)
new_esEs25(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(ty_Either, cfb), cfc)) → new_esEs7(zzz5000, zzz4000, cfb, cfc)
new_lt21(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_esEs22(zzz19010, zzz197010, app(ty_[], bgb)) → new_esEs18(zzz19010, zzz197010, bgb)
new_ltEs9(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), bbe, bbf, bbg) → new_pePe(new_lt20(zzz19010, zzz197010, bbe), new_asAs(new_esEs22(zzz19010, zzz197010, bbe), new_pePe(new_lt19(zzz19011, zzz197011, bbf), new_asAs(new_esEs21(zzz19011, zzz197011, bbf), new_ltEs19(zzz19012, zzz197012, bbg)))))
new_lt20(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Int) → new_ltEs15(zzz19011, zzz197011)
new_gt(zzz1890, zzz18940, h, ba) → new_esEs8(new_compare12(zzz1890, zzz18940, h, ba), GT)
new_lt21(zzz19010, zzz197010, app(ty_Ratio, dca)) → new_lt10(zzz19010, zzz197010, dca)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Integer) → new_ltEs11(zzz19011, zzz197011)
new_esEs20(zzz1900, zzz19700, ty_Ordering) → new_esEs8(zzz1900, zzz19700)
new_esEs23(zzz5002, zzz4002, ty_Ordering) → new_esEs8(zzz5002, zzz4002)
new_ltEs5(False, False) → True
new_ltEs18(zzz1901, zzz19701, app(app(ty_Either, eg), de)) → new_ltEs7(zzz1901, zzz19701, eg, de)
new_ltEs19(zzz19012, zzz197012, app(app(app(ty_@3, bdb), bdc), bdd)) → new_ltEs9(zzz19012, zzz197012, bdb, bdc, bdd)
new_ltEs20(zzz19011, zzz197011, app(app(app(ty_@3, dad), dae), daf)) → new_ltEs9(zzz19011, zzz197011, dad, dae, daf)
new_lt4(zzz1900, zzz19700) → new_esEs8(new_compare10(zzz1900, zzz19700), LT)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Bool, de) → new_ltEs5(zzz19010, zzz197010)
new_ltEs13(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bca, bcb) → new_pePe(new_lt21(zzz19010, zzz197010, bca), new_asAs(new_esEs27(zzz19010, zzz197010, bca), new_ltEs20(zzz19011, zzz197011, bcb)))
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_[], beh)) → new_esEs18(zzz19011, zzz197011, beh)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Integer, cda) → new_esEs15(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Left(zzz197010), eg, de) → False
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_@2, cea), ceb), cda) → new_esEs6(zzz5000, zzz4000, cea, ceb)
new_ltEs19(zzz19012, zzz197012, ty_Ordering) → new_ltEs4(zzz19012, zzz197012)
new_primEqInt(Neg(Zero), Neg(Succ(zzz40000))) → False
new_primEqInt(Neg(Succ(zzz50000)), Neg(Zero)) → False
new_compare10(Integer(zzz19000), Integer(zzz197000)) → new_primCmpInt(zzz19000, zzz197000)
new_esEs8(EQ, EQ) → True
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_Either, daa), dab)) → new_ltEs7(zzz19010, zzz197010, daa, dab)
new_compare19(zzz1900, zzz19700, False, cf, cg, da) → GT
new_esEs26(zzz5000, zzz4000, app(ty_[], cgc)) → new_esEs18(zzz5000, zzz4000, cgc)
new_esEs22(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_esEs5(zzz19010, zzz197010, bff, bfg, bfh)
new_compare113(zzz286, zzz287, zzz288, zzz289, True, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc)
new_esEs20(zzz1900, zzz19700, ty_@0) → new_esEs19(zzz1900, zzz19700)
new_esEs19(@0, @0) → True
new_esEs26(zzz5000, zzz4000, app(app(ty_Either, cge), cgf)) → new_esEs7(zzz5000, zzz4000, cge, cgf)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Ordering) → new_ltEs4(zzz1901, zzz19701)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_ltEs4(EQ, LT) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_Either, ddf), ddg)) → new_esEs7(zzz5000, zzz4000, ddf, ddg)
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt19(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_lt16(zzz19011, zzz197011, bfc, bfd)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(ty_@2, cfd), cfe)) → new_esEs6(zzz5000, zzz4000, cfd, cfe)
new_esEs22(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_@0) → new_compare8(zzz19000, zzz197000)
new_esEs22(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_esEs4(zzz19010, zzz197010, bfe)
new_lt21(zzz19010, zzz197010, app(app(app(ty_@3, dbf), dbg), dbh)) → new_lt8(zzz19010, zzz197010, dbf, dbg, dbh)
new_esEs25(zzz5000, zzz4000, app(ty_Maybe, ccc)) → new_esEs4(zzz5000, zzz4000, ccc)
new_compare112(zzz1900, zzz19700, True) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Float, de) → new_ltEs14(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Bool) → new_ltEs5(zzz1901, zzz19701)
new_primEqInt(Pos(Succ(zzz50000)), Pos(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs12(zzz5001, zzz4001, app(app(app(ty_@3, gg), gh), ha)) → new_esEs5(zzz5001, zzz4001, gg, gh, ha)
new_compare27(zzz1900, zzz19700, True, bcg, bch) → EQ
new_lt19(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_lt12(zzz19011, zzz197011, bfa, bfb)
new_ltEs20(zzz19011, zzz197011, ty_Float) → new_ltEs14(zzz19011, zzz197011)
new_ltEs18(zzz1901, zzz19701, ty_@0) → new_ltEs10(zzz1901, zzz19701)
new_esEs23(zzz5002, zzz4002, ty_Char) → new_esEs17(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_primEqNat0(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat0(zzz50000, zzz40000)
new_esEs27(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_[], ceh)) → new_esEs18(zzz5000, zzz4000, ceh)
new_esEs23(zzz5002, zzz4002, app(ty_Ratio, bhb)) → new_esEs14(zzz5002, zzz4002, bhb)
new_esEs13(zzz5000, zzz4000, app(app(app(ty_@3, baa), bab), bac)) → new_esEs5(zzz5000, zzz4000, baa, bab, bac)
new_compare5(zzz19000, zzz197000, ty_Int) → new_compare14(zzz19000, zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_esEs14(:%(zzz5000, zzz5001), :%(zzz4000, zzz4001), deb) → new_asAs(new_esEs29(zzz5000, zzz4000, deb), new_esEs28(zzz5001, zzz4001, deb))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, dda), ddb), ddc)) → new_esEs5(zzz5000, zzz4000, dda, ddb, ddc)
new_ltEs20(zzz19011, zzz197011, ty_Char) → new_ltEs16(zzz19011, zzz197011)
new_esEs22(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_lt10(zzz1900, zzz19700, bcd) → new_esEs8(new_compare11(zzz1900, zzz19700, bcd), LT)
new_ltEs4(GT, EQ) → False
new_primCompAux00(zzz323, LT) → LT
new_esEs25(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_lt6(zzz1900, zzz19700, ty_Integer) → new_lt4(zzz1900, zzz19700)
new_esEs28(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_compare114(zzz1900, zzz19700, True, bcg, bch) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Int, de) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(app(ty_Either, bea), beb)) → new_ltEs7(zzz19012, zzz197012, bea, beb)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_Ratio, ced)) → new_esEs14(zzz5000, zzz4000, ced)
new_ltEs8(Just(zzz19010), Nothing, bbd) → False
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs27(zzz19010, zzz197010, app(app(app(ty_@3, dbf), dbg), dbh)) → new_esEs5(zzz19010, zzz197010, dbf, dbg, dbh)
new_esEs21(zzz19011, zzz197011, ty_Int) → new_esEs11(zzz19011, zzz197011)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Succ(zzz50000)), Pos(Zero)) → False
new_esEs27(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_ltEs4(EQ, EQ) → True
new_ltEs18(zzz1901, zzz19701, ty_Integer) → new_ltEs11(zzz1901, zzz19701)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Ratio, che)) → new_ltEs6(zzz19010, zzz197010, che)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_ltEs4(GT, LT) → False
new_sr0(Integer(zzz1970000), Integer(zzz190010)) → Integer(new_primMulInt(zzz1970000, zzz190010))
new_primEqInt(Neg(Succ(zzz50000)), Pos(zzz4000)) → False
new_primEqInt(Pos(Succ(zzz50000)), Neg(zzz4000)) → False
new_compare24(zzz1900, zzz19700, False) → new_compare111(zzz1900, zzz19700, new_ltEs5(zzz1900, zzz19700))
new_ltEs5(False, True) → True
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_@2, ddh), dea)) → new_esEs6(zzz5000, zzz4000, ddh, dea)
new_lt16(zzz1900, zzz19700, bcg, bch) → new_esEs8(new_compare16(zzz1900, zzz19700, bcg, bch), LT)
new_esEs22(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_esEs6(zzz19010, zzz197010, bgc, bgd)
new_compare7(zzz1900, zzz19700, cf, cg, da) → new_compare26(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Ordering, de) → new_ltEs4(zzz19010, zzz197010)
new_compare9(zzz1900, zzz19700) → new_compare28(zzz1900, zzz19700, new_esEs8(zzz1900, zzz19700))
new_primEqInt(Neg(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz40000))) → False
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Char, de) → new_ltEs16(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Integer) → new_esEs15(zzz19011, zzz197011)
new_esEs18(:(zzz5000, zzz5001), :(zzz4000, zzz4001), cff) → new_asAs(new_esEs26(zzz5000, zzz4000, cff), new_esEs18(zzz5001, zzz4001, cff))
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCompAux00(zzz323, EQ) → zzz323
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_Maybe, cfa)) → new_esEs4(zzz5000, zzz4000, cfa)
new_compare24(zzz1900, zzz19700, True) → EQ
new_lt21(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_esEs13(zzz5000, zzz4000, app(ty_[], bad)) → new_esEs18(zzz5000, zzz4000, bad)
new_lt17(zzz1900, zzz19700) → new_esEs8(new_compare17(zzz1900, zzz19700), LT)
new_esEs26(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Double) → new_esEs10(zzz19011, zzz197011)
new_ltEs19(zzz19012, zzz197012, app(app(ty_@2, bdg), bdh)) → new_ltEs13(zzz19012, zzz197012, bdg, bdh)
new_compare13(Float(zzz19000, zzz19001), Float(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_not(False) → True
new_compare114(zzz1900, zzz19700, False, bcg, bch) → GT
new_esEs11(zzz500, zzz400) → new_primEqInt(zzz500, zzz400)
new_compare5(zzz19000, zzz197000, app(app(ty_@2, cb), cc)) → new_compare12(zzz19000, zzz197000, cb, cc)
new_lt20(zzz19010, zzz197010, app(ty_[], bgb)) → new_lt11(zzz19010, zzz197010, bgb)
new_esEs13(zzz5000, zzz4000, app(app(ty_Either, baf), bag)) → new_esEs7(zzz5000, zzz4000, baf, bag)
new_ltEs17(zzz1901, zzz19701) → new_not(new_esEs8(new_compare18(zzz1901, zzz19701), GT))
new_lt20(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_esEs26(zzz5000, zzz4000, app(ty_Ratio, cfg)) → new_esEs14(zzz5000, zzz4000, cfg)
new_esEs23(zzz5002, zzz4002, app(app(ty_@2, cab), cac)) → new_esEs6(zzz5002, zzz4002, cab, cac)
new_esEs13(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs25(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_ltEs19(zzz19012, zzz197012, app(ty_[], bdf)) → new_ltEs12(zzz19012, zzz197012, bdf)
new_lt6(zzz1900, zzz19700, app(ty_[], bc)) → new_lt11(zzz1900, zzz19700, bc)
new_lt20(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_lt16(zzz19010, zzz197010, bge, bgf)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_[], ff)) → new_ltEs12(zzz19010, zzz197010, ff)
new_compare0(:(zzz19000, zzz19001), [], bc) → GT
new_lt21(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_compare28(zzz1900, zzz19700, True) → EQ
new_lt19(zzz19011, zzz197011, ty_Integer) → new_lt4(zzz19011, zzz197011)
new_esEs27(zzz19010, zzz197010, app(ty_[], dcb)) → new_esEs18(zzz19010, zzz197010, dcb)
new_esEs9(True, True) → True
new_esEs27(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_esEs5(zzz1900, zzz19700, cf, cg, da)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs21(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_esEs5(zzz19011, zzz197011, bed, bee, bef)
new_lt19(zzz19011, zzz197011, ty_Char) → new_lt17(zzz19011, zzz197011)
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Integer) → new_compare10(new_sr0(zzz19000, zzz197001), new_sr0(zzz197000, zzz19001))
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Ratio, cch), cda) → new_esEs14(zzz5000, zzz4000, cch)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs27(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(ty_Maybe, bda)) → new_ltEs8(zzz19012, zzz197012, bda)
new_esEs27(zzz19010, zzz197010, app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz19010, zzz197010, dcc, dcd)
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_ltEs19(zzz19012, zzz197012, app(ty_Ratio, bde)) → new_ltEs6(zzz19012, zzz197012, bde)
new_esEs20(zzz1900, zzz19700, ty_Integer) → new_esEs15(zzz1900, zzz19700)
new_lt9(zzz1900, zzz19700) → new_esEs8(new_compare8(zzz1900, zzz19700), LT)
new_primEqNat0(Succ(zzz50000), Zero) → False
new_primEqNat0(Zero, Succ(zzz40000)) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_lt12(zzz19010, zzz197010, bgc, bgd)
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_Either, ee), ef), de) → new_ltEs7(zzz19010, zzz197010, ee, ef)
new_compare25(zzz190, zzz1970, True, bbb, bbc) → EQ
new_esEs24(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs4(Nothing, Nothing, dcg) → True
new_lt19(zzz19011, zzz197011, app(ty_[], beh)) → new_lt11(zzz19011, zzz197011, beh)
new_ltEs6(zzz1901, zzz19701, gc) → new_not(new_esEs8(new_compare11(zzz1901, zzz19701, gc), GT))
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Char, cda) → new_esEs17(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Bool) → new_esEs9(zzz19011, zzz197011)
new_esEs12(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_esEs23(zzz5002, zzz4002, ty_Int) → new_esEs11(zzz5002, zzz4002)
new_lt20(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, ty_Ordering) → new_lt5(zzz1900, zzz19700)
new_esEs27(zzz19010, zzz197010, app(ty_Maybe, dbe)) → new_esEs4(zzz19010, zzz197010, dbe)
new_esEs21(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_esEs7(zzz19011, zzz197011, bfc, bfd)
new_ltEs20(zzz19011, zzz197011, ty_Double) → new_ltEs17(zzz19011, zzz197011)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_ltEs4(LT, GT) → True
new_lt15(zzz1900, zzz19700) → new_esEs8(new_compare15(zzz1900, zzz19700), LT)
new_lt21(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Char) → new_esEs17(zzz19011, zzz197011)
new_ltEs12(zzz1901, zzz19701, bbh) → new_not(new_esEs8(new_compare0(zzz1901, zzz19701, bbh), GT))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs20(zzz1900, zzz19700, ty_Bool) → new_esEs9(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_esEs25(zzz5000, zzz4000, app(ty_Ratio, cbf)) → new_esEs14(zzz5000, zzz4000, cbf)
new_lt20(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Float) → new_ltEs14(zzz1901, zzz19701)
new_compare5(zzz19000, zzz197000, ty_Integer) → new_compare10(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, app(app(ty_@2, bah), bba)) → new_esEs6(zzz5000, zzz4000, bah, bba)
new_lt6(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_lt16(zzz1900, zzz19700, bcg, bch)
new_esEs24(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, app(app(ty_Either, hd), he)) → new_esEs7(zzz5001, zzz4001, hd, he)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Integer, de) → new_ltEs11(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Integer) → new_ltEs11(zzz19012, zzz197012)
new_esEs25(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_esEs4(zzz19011, zzz197011, bec)
new_esEs9(False, True) → False
new_esEs9(True, False) → False
new_esEs20(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_esEs7(zzz1900, zzz19700, bcg, bch)
new_esEs27(zzz19010, zzz197010, app(ty_Ratio, dca)) → new_esEs14(zzz19010, zzz197010, dca)
new_compare29(zzz1900, zzz19700, True, bcc) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_ltEs4(LT, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Maybe, cha)) → new_ltEs8(zzz19010, zzz197010, cha)
new_lt20(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_lt7(zzz19010, zzz197010, bfe)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_Either, ga), gb)) → new_ltEs7(zzz19010, zzz197010, ga, gb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, app(ty_Maybe, hc)) → new_esEs4(zzz5001, zzz4001, hc)
new_asAs(False, zzz239) → False
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Int) → new_compare14(new_sr(zzz19000, zzz197001), new_sr(zzz197000, zzz19001))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, app(ty_Ratio, hh)) → new_esEs14(zzz5000, zzz4000, hh)
new_compare12(zzz1900, zzz19700, bce, bcf) → new_compare25(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, bce, bcf), bce, bcf)
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Float) → new_ltEs14(zzz19012, zzz197012)
new_esEs18([], [], cff) → True
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Ordering) → new_esEs8(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_[], ddd)) → new_esEs18(zzz5000, zzz4000, ddd)
new_lt19(zzz19011, zzz197011, ty_Double) → new_lt18(zzz19011, zzz197011)
new_esEs29(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, ty_Char) → new_ltEs16(zzz19012, zzz197012)
new_ltEs19(zzz19012, zzz197012, ty_@0) → new_ltEs10(zzz19012, zzz197012)
new_esEs20(zzz1900, zzz19700, ty_Float) → new_esEs16(zzz1900, zzz19700)
new_lt11(zzz1900, zzz19700, bc) → new_esEs8(new_compare0(zzz1900, zzz19700, bc), LT)
new_lt13(zzz1900, zzz19700) → new_esEs8(new_compare13(zzz1900, zzz19700), LT)
new_esEs28(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_lt20(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare110(zzz286, zzz287, zzz288, zzz289, False, db, dc) → GT
new_esEs5(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), bgg, bgh, bha) → new_asAs(new_esEs25(zzz5000, zzz4000, bgg), new_asAs(new_esEs24(zzz5001, zzz4001, bgh), new_esEs23(zzz5002, zzz4002, bha)))
new_ltEs18(zzz1901, zzz19701, app(app(ty_@2, bca), bcb)) → new_ltEs13(zzz1901, zzz19701, bca, bcb)
new_esEs26(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Integer) → new_esEs15(zzz5002, zzz4002)
new_lt19(zzz19011, zzz197011, ty_Bool) → new_lt15(zzz19011, zzz197011)
new_compare5(zzz19000, zzz197000, ty_Bool) → new_compare15(zzz19000, zzz197000)
new_esEs9(False, False) → True
new_ltEs19(zzz19012, zzz197012, ty_Bool) → new_ltEs5(zzz19012, zzz197012)
new_esEs22(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, app(ty_Maybe, bd)) → new_compare6(zzz19000, zzz197000, bd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_@2, ec), ed), de) → new_ltEs13(zzz19010, zzz197010, ec, ed)
new_ltEs20(zzz19011, zzz197011, app(app(ty_Either, dbc), dbd)) → new_ltEs7(zzz19011, zzz197011, dbc, dbd)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(app(ty_@3, fa), fb), fc)) → new_ltEs9(zzz19010, zzz197010, fa, fb, fc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_[], eb), de) → new_ltEs12(zzz19010, zzz197010, eb)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(ty_Maybe, bbd)) → new_ltEs8(zzz1901, zzz19701, bbd)
new_ltEs4(LT, LT) → True
new_ltEs19(zzz19012, zzz197012, ty_Int) → new_ltEs15(zzz19012, zzz197012)
new_ltEs8(Nothing, Nothing, bbd) → True
new_ltEs10(zzz1901, zzz19701) → new_not(new_esEs8(new_compare8(zzz1901, zzz19701), GT))
new_esEs23(zzz5002, zzz4002, ty_Double) → new_esEs10(zzz5002, zzz4002)
new_esEs25(zzz5000, zzz4000, app(app(app(ty_@3, cbg), cbh), cca)) → new_esEs5(zzz5000, zzz4000, cbg, cbh, cca)
new_ltEs20(zzz19011, zzz197011, app(ty_Ratio, dag)) → new_ltEs6(zzz19011, zzz197011, dag)
new_lt5(zzz1900, zzz19700) → new_esEs8(new_compare9(zzz1900, zzz19700), LT)
new_compare112(zzz1900, zzz19700, False) → GT
new_esEs12(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_lt12(zzz1900, zzz19700, bce, bcf) → new_esEs8(new_compare12(zzz1900, zzz19700, bce, bcf), LT)
new_esEs12(zzz5001, zzz4001, app(ty_Ratio, gf)) → new_esEs14(zzz5001, zzz4001, gf)
new_compare5(zzz19000, zzz197000, ty_Ordering) → new_compare9(zzz19000, zzz197000)
new_lt6(zzz1900, zzz19700, ty_Float) → new_lt13(zzz1900, zzz19700)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_compare5(zzz19000, zzz197000, app(app(app(ty_@3, be), bf), bg)) → new_compare7(zzz19000, zzz197000, be, bf, bg)
new_esEs20(zzz1900, zzz19700, ty_Char) → new_esEs17(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_compare26(zzz1900, zzz19700, True, cf, cg, da) → EQ
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_esEs22(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_lt7(zzz1900, zzz19700, bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_@2, chg), chh)) → new_ltEs13(zzz19010, zzz197010, chg, chh)
new_lt6(zzz1900, zzz19700, ty_Int) → new_lt14(zzz1900, zzz19700)
new_compare0([], :(zzz197000, zzz197001), bc) → LT
new_esEs12(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs13(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_asAs(True, zzz239) → zzz239
new_esEs25(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_@0, cda) → new_esEs19(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(app(app(ty_@3, cfh), cga), cgb)) → new_esEs5(zzz5000, zzz4000, cfh, cga, cgb)
new_esEs27(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Double) → new_compare18(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt20(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_lt10(zzz19010, zzz197010, bga)
new_lt6(zzz1900, zzz19700, ty_Char) → new_lt17(zzz1900, zzz19700)
new_lt19(zzz19011, zzz197011, ty_@0) → new_lt9(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare8(@0, @0) → EQ
new_ltEs11(zzz1901, zzz19701) → new_not(new_esEs8(new_compare10(zzz1901, zzz19701), GT))
new_esEs26(zzz5000, zzz4000, app(app(ty_@2, cgg), cgh)) → new_esEs6(zzz5000, zzz4000, cgg, cgh)
new_lt20(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_primCompAux0(zzz19000, zzz197000, zzz316, bc) → new_primCompAux00(zzz316, new_compare5(zzz19000, zzz197000, bc))
new_esEs23(zzz5002, zzz4002, app(app(app(ty_@3, bhc), bhd), bhe)) → new_esEs5(zzz5002, zzz4002, bhc, bhd, bhe)
new_ltEs18(zzz1901, zzz19701, app(ty_[], bbh)) → new_ltEs12(zzz1901, zzz19701, bbh)
new_ltEs20(zzz19011, zzz197011, app(app(ty_@2, dba), dbb)) → new_ltEs13(zzz19011, zzz197011, dba, dbb)
new_compare5(zzz19000, zzz197000, app(app(ty_Either, cd), ce)) → new_compare16(zzz19000, zzz197000, cd, ce)
new_lt18(zzz1900, zzz19700) → new_esEs8(new_compare18(zzz1900, zzz19700), LT)
new_compare28(zzz1900, zzz19700, False) → new_compare112(zzz1900, zzz19700, new_ltEs4(zzz1900, zzz19700))
new_lt21(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_ltEs4(GT, GT) → True
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Ratio, fd)) → new_ltEs6(zzz19010, zzz197010, fd)
new_esEs23(zzz5002, zzz4002, app(ty_[], bhf)) → new_esEs18(zzz5002, zzz4002, bhf)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_[], chf)) → new_ltEs12(zzz19010, zzz197010, chf)
new_esEs20(zzz1900, zzz19700, ty_Double) → new_esEs10(zzz1900, zzz19700)
new_primCompAux00(zzz323, GT) → GT
new_esEs25(zzz5000, zzz4000, app(app(ty_Either, ccd), cce)) → new_esEs7(zzz5000, zzz4000, ccd, cce)
new_compare6(zzz1900, zzz19700, bcc) → new_compare29(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, bcc), bcc)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Float, cda) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Float) → new_esEs16(zzz19011, zzz197011)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_lt6(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_lt12(zzz1900, zzz19700, bce, bcf)
new_lt19(zzz19011, zzz197011, ty_Int) → new_lt14(zzz19011, zzz197011)
new_esEs10(Double(zzz5000, zzz5001), Double(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Double, de) → new_ltEs17(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Int) → new_ltEs15(zzz1901, zzz19701)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_esEs27(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, app(app(ty_@2, hf), hg)) → new_esEs6(zzz5001, zzz4001, hf, hg)
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_not(True) → False
new_compare5(zzz19000, zzz197000, app(ty_[], ca)) → new_compare0(zzz19000, zzz197000, ca)

The set Q consists of the following terms:

new_lt6(x0, x1, ty_Float)
new_compare25(@2(x0, x1), @2(x2, x3), False, x4, x5)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, ty_Integer)
new_compare5(x0, x1, app(ty_Ratio, x2))
new_lt16(x0, x1, x2, x3)
new_esEs13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_ltEs6(x0, x1, x2)
new_lt6(x0, x1, ty_@0)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_asAs(True, x0)
new_compare13(Float(x0, x1), Float(x2, x3))
new_esEs23(x0, x1, ty_@0)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Nothing, Just(x0), x1)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpNat0(Succ(x0), Zero)
new_ltEs18(x0, x1, ty_Ordering)
new_compare5(x0, x1, ty_Float)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare0([], :(x0, x1), x2)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, ty_Ordering)
new_esEs27(x0, x1, app(ty_[], x2))
new_lt6(x0, x1, ty_Integer)
new_esEs12(x0, x1, ty_Char)
new_esEs13(x0, x1, ty_Int)
new_lt19(x0, x1, app(ty_[], x2))
new_compare0([], [], x0)
new_esEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs29(x0, x1, ty_Int)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Ordering)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_lt20(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Char)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Integer)
new_esEs12(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs12(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs29(x0, x1, ty_Integer)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(GT, GT)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_esEs21(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Float)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_compare26(x0, x1, False, x2, x3, x4)
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_compare29(x0, x1, False, x2)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Nothing, x1)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux00(x0, LT)
new_ltEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt6(x0, x1, ty_Bool)
new_lt10(x0, x1, x2)
new_esEs8(LT, LT)
new_esEs18([], [], x0)
new_esEs27(x0, x1, ty_Double)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs21(x0, x1, ty_Char)
new_ltEs18(x0, x1, ty_Bool)
new_ltEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs20(x0, x1, ty_Float)
new_ltEs5(False, False)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_compare8(@0, @0)
new_esEs26(x0, x1, ty_Int)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Integer)
new_compare115(x0, x1, True, x2)
new_esEs21(x0, x1, ty_@0)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_ltEs20(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_compare16(x0, x1, x2, x3)
new_esEs18([], :(x0, x1), x2)
new_esEs26(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Float)
new_esEs27(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt20(x0, x1, ty_Bool)
new_esEs4(Nothing, Nothing, x0)
new_lt21(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare113(x0, x1, x2, x3, False, x4, x5, x6)
new_ltEs16(x0, x1)
new_ltEs8(Nothing, Just(x0), x1)
new_primCompAux0(x0, x1, x2, x3)
new_lt11(x0, x1, x2)
new_ltEs18(x0, x1, ty_Integer)
new_compare114(x0, x1, False, x2, x3)
new_primEqNat0(Zero, Zero)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs12(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(True, True)
new_esEs21(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, ty_Int)
new_lt20(x0, x1, ty_@0)
new_lt21(x0, x1, app(ty_[], x2))
new_esEs13(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Double)
new_lt4(x0, x1)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Integer)
new_lt6(x0, x1, ty_Int)
new_primMulNat0(Zero, Zero)
new_ltEs19(x0, x1, ty_Int)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_primCompAux00(x0, GT)
new_compare9(x0, x1)
new_ltEs7(Right(x0), Left(x1), x2, x3)
new_ltEs7(Left(x0), Right(x1), x2, x3)
new_ltEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_lt19(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_compare110(x0, x1, x2, x3, True, x4, x5)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs17(x0, x1)
new_esEs23(x0, x1, ty_Float)
new_compare5(x0, x1, ty_Double)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(GT, GT)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_pePe(False, x0)
new_compare24(x0, x1, False)
new_compare5(x0, x1, ty_Ordering)
new_compare27(x0, x1, True, x2, x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Int)
new_lt13(x0, x1)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Double)
new_compare17(Char(x0), Char(x1))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs12(x0, x1, ty_Float)
new_esEs13(x0, x1, ty_Double)
new_compare19(x0, x1, True, x2, x3, x4)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_lt5(x0, x1)
new_esEs13(x0, x1, ty_Char)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs12(x0, x1, ty_Double)
new_compare10(Integer(x0), Integer(x1))
new_esEs26(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs26(x0, x1, ty_@0)
new_esEs14(:%(x0, x1), :%(x2, x3), x4)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primMulNat0(Succ(x0), Zero)
new_compare5(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare110(x0, x1, x2, x3, False, x4, x5)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare114(x0, x1, True, x2, x3)
new_primMulNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Char)
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs20(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Ordering)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Integer)
new_primPlusNat0(Zero, Zero)
new_lt19(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_ltEs19(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, app(ty_Maybe, x2))
new_esEs13(x0, x1, app(ty_Ratio, x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Bool)
new_compare14(x0, x1)
new_esEs26(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs23(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Float)
new_ltEs13(@2(x0, x1), @2(x2, x3), x4, x5)
new_compare112(x0, x1, True)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs24(x0, x1, ty_@0)
new_ltEs18(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Float)
new_compare0(:(x0, x1), [], x2)
new_esEs12(x0, x1, ty_Int)
new_compare5(x0, x1, ty_Int)
new_compare29(x0, x1, True, x2)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Float)
new_ltEs4(EQ, EQ)
new_esEs18(:(x0, x1), [], x2)
new_ltEs8(Nothing, Nothing, x0)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Float)
new_compare18(Double(x0, x1), Double(x2, x3))
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_compare5(x0, x1, app(ty_Maybe, x2))
new_gt(x0, x1, x2, x3)
new_esEs25(x0, x1, ty_Double)
new_lt6(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Double)
new_ltEs4(LT, EQ)
new_lt21(x0, x1, ty_Double)
new_ltEs4(EQ, LT)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_sr0(Integer(x0), Integer(x1))
new_pePe(True, x0)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs12(x0, x1, x2)
new_ltEs20(x0, x1, ty_Double)
new_lt17(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_primPlusNat1(Zero, x0)
new_esEs22(x0, x1, ty_@0)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs18(:(x0, x1), :(x2, x3), x4)
new_compare111(x0, x1, True)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs20(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare5(x0, x1, ty_@0)
new_compare113(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs27(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), x1)
new_ltEs14(x0, x1)
new_primEqNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs12(x0, x1, ty_Ordering)
new_ltEs7(Left(x0), Left(x1), ty_Double, x2)
new_ltEs18(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_lt6(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs21(x0, x1, ty_Bool)
new_asAs(False, x0)
new_compare25(x0, x1, True, x2, x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, ty_Double)
new_primEqInt(Neg(Zero), Neg(Zero))
new_lt21(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_ltEs10(x0, x1)
new_esEs15(Integer(x0), Integer(x1))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_ltEs11(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs21(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_primPlusNat0(Zero, Succ(x0))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs13(x0, x1, ty_Ordering)
new_esEs12(x0, x1, ty_Integer)
new_ltEs4(LT, LT)
new_esEs12(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare115(x0, x1, False, x2)
new_esEs24(x0, x1, ty_Ordering)
new_compare5(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare7(x0, x1, x2, x3, x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Float)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Bool)
new_esEs20(x0, x1, ty_Float)
new_ltEs8(Just(x0), Nothing, x1)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_esEs25(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_primMulInt(Pos(x0), Pos(x1))
new_lt20(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_ltEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_lt21(x0, x1, ty_@0)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt19(x0, x1, ty_Char)
new_esEs13(x0, x1, app(ty_[], x2))
new_lt8(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Bool)
new_ltEs15(x0, x1)
new_esEs12(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs25(x0, x1, ty_Int)
new_ltEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs24(x0, x1, ty_Double)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, ty_Integer)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, ty_Bool)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, False)
new_ltEs20(x0, x1, ty_Bool)
new_esEs9(False, False)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs26(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs27(x0, x1, ty_@0)
new_esEs13(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_Int)
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_compare27(x0, x1, False, x2, x3)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_esEs25(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare15(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_lt12(x0, x1, x2, x3)
new_esEs13(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_compare111(x0, x1, False)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs13(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(True, True)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs17(Char(x0), Char(x1))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(EQ, GT)
new_ltEs4(GT, EQ)
new_esEs13(x0, x1, ty_@0)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Int)
new_not(True)
new_esEs22(x0, x1, ty_Ordering)
new_esEs27(x0, x1, ty_Ordering)
new_esEs10(Double(x0, x1), Double(x2, x3))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_compare6(x0, x1, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs11(x0, x1)
new_esEs27(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_primPlusNat0(Succ(x0), Zero)
new_ltEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Bool)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_lt14(x0, x1)
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs25(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs20(x0, x1, app(ty_[], x2))
new_compare24(x0, x1, True)
new_esEs22(x0, x1, ty_Int)
new_esEs13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs9(False, True)
new_esEs9(True, False)
new_lt19(x0, x1, ty_Integer)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs25(x0, x1, ty_@0)
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_lt18(x0, x1)
new_lt7(x0, x1, x2)
new_esEs24(x0, x1, ty_Bool)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_primCmpNat0(Zero, Succ(x0))
new_ltEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_lt6(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_@0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Float)
new_compare26(x0, x1, True, x2, x3, x4)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, ty_Char)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, app(ty_Maybe, x2))
new_compare28(x0, x1, True)
new_esEs20(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs20(x0, x1, ty_Ordering)
new_compare12(x0, x1, x2, x3)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux00(x0, EQ)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs19(@0, @0)
new_ltEs4(GT, LT)
new_ltEs4(LT, GT)
new_ltEs5(True, False)
new_compare19(x0, x1, False, x2, x3, x4)
new_ltEs5(False, True)
new_ltEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt9(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primEqNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_esEs12(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs20(x0, x1, ty_@0)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_compare28(x0, x1, False)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb)

The TRS R consists of the following rules:

new_primMulNat0(Zero, Zero) → Zero
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs8(GT, GT) → True
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs8(EQ, EQ) → True
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs8(LT, GT) → False
new_esEs8(GT, LT) → False
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_primPlusNat0(Zero, Zero) → Zero
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_esEs8(LT, EQ) → False
new_esEs8(EQ, LT) → False
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs8(LT, LT) → True
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_esEs8(EQ, GT) → False
new_esEs8(GT, EQ) → False
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
QDP
                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb) at position [12] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
QDP
                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), h, ba, bb) at position [12] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
QDP
                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
QDP
                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt14(x0, x1)
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_lt14(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
QDP
                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
QDP
                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_compare14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
QDP
                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
QDP
                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare14(x0, x1)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_compare14(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
QDP
                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
QDP
                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
QDP
                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
QDP
                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_sr(x0, x1)
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sr(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
QDP
                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0,0] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
QDP
                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0,0] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
QDP
                                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
QDP
                                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sIZE_RATIO

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sIZE_RATIO



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
QDP
                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
QDP
                                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
QDP
                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
QDP
                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
QDP
                                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
QDP
                                                                                                                            ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
QDP
                                                                                                                                ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
QDP
                                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
QDP
                                                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb)), LT), h, ba, bb) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
QDP
                                                                                                                                            ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bb) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ UsableRulesProof
QDP
                                                                                                                                                ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ UsableRulesProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ QReductionProof
QDP
                                                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bb)), LT), h, ba, bb) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), zzz18942), LT), h, ba, bb)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ UsableRulesProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ QReductionProof
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
QDP
                                                                                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), zzz18942), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bc) → zzz2422
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ UsableRulesProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ QReductionProof
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
QDP
                                                                                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), zzz18942), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ UsableRulesProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ QReductionProof
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ QReductionProof
QDP
                                                                                                                                                                ↳ QDPOrderProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), zzz18942), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bb) → new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz18942), zzz3472), LT), h, ba, bb)
new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bb)
The remaining pairs can at least be oriented weakly.

new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), zzz18942), LT), h, ba, bb)
Used ordering: Polynomial interpretation [25]:

POL(Branch(x1, x2, x3, x4, x5)) = 1 + x1 + x3 + x4 + x5   
POL(EQ) = 0   
POL(False) = 1   
POL(GT) = 0   
POL(LT) = 0   
POL(Neg(x1)) = x1   
POL(Pos(x1)) = 0   
POL(Succ(x1)) = 0   
POL(True) = 1   
POL(Zero) = 0   
POL(new_esEs8(x1, x2)) = 1   
POL(new_mkVBalBranch(x1, x2, x3, x4, x5, x6, x7)) = x3 + x4   
POL(new_mkVBalBranch3MkVBalBranch1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)) = 1 + x1 + x10 + x3 + x4 + x5   
POL(new_mkVBalBranch3MkVBalBranch2(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)) = 1 + x1 + x10 + x13 + x3 + x4 + x5 + x6 + x8 + x9   
POL(new_primCmpInt(x1, x2)) = 0   
POL(new_primCmpNat0(x1, x2)) = 0   
POL(new_primMulInt(x1, x2)) = x2   
POL(new_primMulNat0(x1, x2)) = 0   
POL(new_primPlusNat0(x1, x2)) = 0   
POL(new_primPlusNat1(x1, x2)) = 0   

The following usable rules [17] were oriented:

new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_esEs8(GT, LT) → False



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ Rewriting
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ UsableRulesProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ QReductionProof
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ QReductionProof
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ QDPOrderProof
QDP
                                                                                                                                                                    ↳ DependencyGraphProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bb) → new_mkVBalBranch(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb)
new_mkVBalBranch(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bb) → new_mkVBalBranch3MkVBalBranch2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3472), zzz18942), LT), h, ba, bb)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_primMulNat0(Zero, Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_primPlusNat0(Zero, Zero) → Zero
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primMulNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpNat0(Zero, Zero)
new_primPlusNat0(Succ(x0), Succ(x1))
new_primPlusNat1(Zero, x0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primPlusNat0(Succ(x0), Zero)
new_esEs8(LT, LT)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Succ(x1))
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Succ(x0))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_primCmpNat0(Succ(x0), Zero)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_primPlusNat0(Zero, Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs8(GT, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_primCmpNat0(Succ(x0), Succ(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 0 SCCs with 2 less nodes.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_splitLT2(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, False, h, ba, bb) → new_splitLT1(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, new_gt0(zzz190, zzz191, zzz1880, h, ba), h, ba, bb)
new_splitLT2(zzz1880, zzz1881, zzz1882, Branch(zzz18830, zzz18831, zzz18832, zzz18833, zzz18834), zzz1884, zzz190, zzz191, True, h, ba, bb) → new_splitLT2(zzz18830, zzz18831, zzz18832, zzz18833, zzz18834, zzz190, zzz191, new_lt12(@2(zzz190, zzz191), zzz18830, h, ba), h, ba, bb)
new_splitLT(Branch(zzz18830, zzz18831, zzz18832, zzz18833, zzz18834), zzz190, zzz191, h, ba, bb) → new_splitLT2(zzz18830, zzz18831, zzz18832, zzz18833, zzz18834, zzz190, zzz191, new_lt12(@2(zzz190, zzz191), zzz18830, h, ba), h, ba, bb)
new_splitLT1(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, True, h, ba, bb) → new_splitLT(zzz1884, zzz190, zzz191, h, ba, bb)

The TRS R consists of the following rules:

new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Maybe, dde)) → new_esEs4(zzz5000, zzz4000, dde)
new_esEs23(zzz5002, zzz4002, app(app(ty_Either, bhh), caa)) → new_esEs7(zzz5002, zzz4002, bhh, caa)
new_lt7(zzz1900, zzz19700, bcc) → new_esEs8(new_compare6(zzz1900, zzz19700, bcc), LT)
new_lt21(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare17(Char(zzz19000), Char(zzz197000)) → new_primCmpNat0(zzz19000, zzz197000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_Either, cdg), cdh), cda) → new_esEs7(zzz5000, zzz4000, cdg, cdh)
new_ltEs14(zzz1901, zzz19701) → new_not(new_esEs8(new_compare13(zzz1901, zzz19701), GT))
new_esEs21(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_esEs6(zzz19011, zzz197011, bfa, bfb)
new_lt19(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_lt10(zzz19011, zzz197011, beg)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_ltEs4(EQ, GT) → True
new_esEs24(zzz5001, zzz4001, app(app(app(ty_@3, cae), caf), cag)) → new_esEs5(zzz5001, zzz4001, cae, caf, cag)
new_lt19(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_lt8(zzz19011, zzz197011, bed, bee, bef)
new_compare26(zzz1900, zzz19700, False, cf, cg, da) → new_compare19(zzz1900, zzz19700, new_ltEs9(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc) → LT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs17(Char(zzz5000), Char(zzz4000)) → new_primEqNat0(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_@0, de) → new_ltEs10(zzz19010, zzz197010)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Maybe, cdf), cda) → new_esEs4(zzz5000, zzz4000, cdf)
new_esEs24(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Double, cda) → new_esEs10(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Ratio, ea), de) → new_ltEs6(zzz19010, zzz197010, ea)
new_compare25(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, bbb, bbc) → new_compare113(zzz1900, zzz1901, zzz19700, zzz19701, new_lt6(zzz1900, zzz19700, bbb), new_asAs(new_esEs20(zzz1900, zzz19700, bbb), new_ltEs18(zzz1901, zzz19701, bbc)), bbb, bbc)
new_esEs24(zzz5001, zzz4001, app(ty_Maybe, cba)) → new_esEs4(zzz5001, zzz4001, cba)
new_esEs4(Nothing, Just(zzz4000), dcg) → False
new_esEs4(Just(zzz5000), Nothing, dcg) → False
new_esEs21(zzz19011, zzz197011, ty_@0) → new_esEs19(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_lt8(zzz19010, zzz197010, bff, bfg, bfh)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Ratio, dch)) → new_esEs14(zzz5000, zzz4000, dch)
new_esEs12(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_lt21(zzz19010, zzz197010, app(ty_Maybe, dbe)) → new_lt7(zzz19010, zzz197010, dbe)
new_compare27(zzz1900, zzz19700, False, bcg, bch) → new_compare114(zzz1900, zzz19700, new_ltEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs25(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Float) → new_esEs16(zzz5002, zzz4002)
new_ltEs20(zzz19011, zzz197011, ty_Bool) → new_ltEs5(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Char) → new_compare17(zzz19000, zzz197000)
new_ltEs7(Left(zzz19010), Right(zzz197010), eg, de) → True
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, cdb), cdc), cdd), cda) → new_esEs5(zzz5000, zzz4000, cdb, cdc, cdd)
new_esEs6(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), gd, ge) → new_asAs(new_esEs13(zzz5000, zzz4000, gd), new_esEs12(zzz5001, zzz4001, ge))
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs27(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_esEs4(zzz1900, zzz19700, bcc)
new_lt20(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_compare5(zzz19000, zzz197000, app(ty_Ratio, bh)) → new_compare11(zzz19000, zzz197000, bh)
new_esEs22(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, app(ty_Maybe, dac)) → new_ltEs8(zzz19011, zzz197011, dac)
new_ltEs18(zzz1901, zzz19701, ty_Char) → new_ltEs16(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(ty_[], hb)) → new_esEs18(zzz5001, zzz4001, hb)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_[], cde), cda) → new_esEs18(zzz5000, zzz4000, cde)
new_esEs24(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Bool, cda) → new_esEs9(zzz5000, zzz4000)
new_lt21(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_compare16(zzz1900, zzz19700, bcg, bch) → new_compare27(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs23(zzz5002, zzz4002, app(ty_Maybe, bhg)) → new_esEs4(zzz5002, zzz4002, bhg)
new_ltEs18(zzz1901, zzz19701, app(ty_Ratio, gc)) → new_ltEs6(zzz1901, zzz19701, gc)
new_gt0(zzz190, zzz191, zzz197, h, ba) → new_esEs8(new_compare30(zzz190, zzz191, zzz197, h, ba), GT)
new_esEs13(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs20(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_esEs14(zzz1900, zzz19700, bcd)
new_esEs23(zzz5002, zzz4002, ty_Bool) → new_esEs9(zzz5002, zzz4002)
new_compare18(Double(zzz19000, zzz19001), Double(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(app(ty_@3, cee), cef), ceg)) → new_esEs5(zzz5000, zzz4000, cee, cef, ceg)
new_compare113(zzz286, zzz287, zzz288, zzz289, False, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, zzz291, db, dc)
new_lt6(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_lt10(zzz1900, zzz19700, bcd)
new_lt19(zzz19011, zzz197011, ty_Float) → new_lt13(zzz19011, zzz197011)
new_compare0(:(zzz19000, zzz19001), :(zzz197000, zzz197001), bc) → new_primCompAux0(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, bc), bc)
new_esEs22(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_esEs14(zzz19010, zzz197010, bga)
new_esEs21(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_esEs14(zzz19011, zzz197011, beg)
new_esEs15(Integer(zzz5000), Integer(zzz4000)) → new_primEqInt(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(ty_Maybe, cgd)) → new_esEs4(zzz5000, zzz4000, cgd)
new_esEs20(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_esEs6(zzz1900, zzz19700, bce, bcf)
new_esEs22(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_esEs7(zzz19010, zzz197010, bge, bgf)
new_lt6(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_lt8(zzz1900, zzz19700, cf, cg, da)
new_esEs29(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare29(zzz1900, zzz19700, False, bcc) → new_compare115(zzz1900, zzz19700, new_ltEs8(zzz1900, zzz19700, bcc), bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, chb), chc), chd)) → new_ltEs9(zzz19010, zzz197010, chb, chc, chd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, df), dg), dh), de) → new_ltEs9(zzz19010, zzz197010, df, dg, dh)
new_lt21(zzz19010, zzz197010, app(app(ty_@2, dcc), dcd)) → new_lt12(zzz19010, zzz197010, dcc, dcd)
new_pePe(False, zzz315) → zzz315
new_esEs24(zzz5001, zzz4001, app(ty_Ratio, cad)) → new_esEs14(zzz5001, zzz4001, cad)
new_esEs23(zzz5002, zzz4002, ty_@0) → new_esEs19(zzz5002, zzz4002)
new_esEs27(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Left(zzz4000), cec, cda) → False
new_esEs7(Left(zzz5000), Right(zzz4000), cec, cda) → False
new_esEs18([], :(zzz4000, zzz4001), cff) → False
new_esEs18(:(zzz5000, zzz5001), [], cff) → False
new_ltEs16(zzz1901, zzz19701) → new_not(new_esEs8(new_compare17(zzz1901, zzz19701), GT))
new_lt21(zzz19010, zzz197010, app(ty_[], dcb)) → new_lt11(zzz19010, zzz197010, dcb)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_@2, fg), fh)) → new_ltEs13(zzz19010, zzz197010, fg, fh)
new_lt19(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_lt7(zzz19011, zzz197011, bec)
new_esEs27(zzz19010, zzz197010, app(app(ty_Either, dce), dcf)) → new_esEs7(zzz19010, zzz197010, dce, dcf)
new_compare19(zzz1900, zzz19700, True, cf, cg, da) → LT
new_ltEs20(zzz19011, zzz197011, ty_@0) → new_ltEs10(zzz19011, zzz197011)
new_esEs13(zzz5000, zzz4000, app(ty_Maybe, bae)) → new_esEs4(zzz5000, zzz4000, bae)
new_esEs26(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs15(zzz1901, zzz19701) → new_not(new_esEs8(new_compare14(zzz1901, zzz19701), GT))
new_esEs22(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_lt8(zzz1900, zzz19700, cf, cg, da) → new_esEs8(new_compare7(zzz1900, zzz19700, cf, cg, da), LT)
new_esEs20(zzz1900, zzz19700, app(ty_[], bc)) → new_esEs18(zzz1900, zzz19700, bc)
new_compare111(zzz1900, zzz19700, False) → GT
new_compare111(zzz1900, zzz19700, True) → LT
new_esEs22(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_ltEs20(zzz19011, zzz197011, app(ty_[], dah)) → new_ltEs12(zzz19011, zzz197011, dah)
new_lt6(zzz1900, zzz19700, ty_@0) → new_lt9(zzz1900, zzz19700)
new_ltEs19(zzz19012, zzz197012, ty_Double) → new_ltEs17(zzz19012, zzz197012)
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_compare115(zzz1900, zzz19700, False, bcc) → GT
new_ltEs8(Nothing, Just(zzz197010), bbd) → True
new_esEs25(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs16(Float(zzz5000, zzz5001), Float(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_esEs25(zzz5000, zzz4000, app(app(ty_@2, ccf), ccg)) → new_esEs6(zzz5000, zzz4000, ccf, ccg)
new_esEs8(LT, LT) → True
new_lt6(zzz1900, zzz19700, ty_Double) → new_lt18(zzz1900, zzz19700)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Int, cda) → new_esEs11(zzz5000, zzz4000)
new_compare115(zzz1900, zzz19700, True, bcc) → LT
new_esEs25(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_Either, cbb), cbc)) → new_esEs7(zzz5001, zzz4001, cbb, cbc)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_ltEs5(True, False) → False
new_lt21(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_@2, cbd), cbe)) → new_esEs6(zzz5001, zzz4001, cbd, cbe)
new_compare0([], [], bc) → EQ
new_pePe(True, zzz315) → True
new_compare15(zzz1900, zzz19700) → new_compare24(zzz1900, zzz19700, new_esEs9(zzz1900, zzz19700))
new_primEqNat0(Zero, Zero) → True
new_lt6(zzz1900, zzz19700, ty_Bool) → new_lt15(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Double) → new_ltEs17(zzz1901, zzz19701)
new_esEs20(zzz1900, zzz19700, ty_Int) → new_esEs11(zzz1900, zzz19700)
new_esEs26(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Ordering) → new_ltEs4(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(app(ty_Either, dce), dcf)) → new_lt16(zzz19010, zzz197010, dce, dcf)
new_esEs25(zzz5000, zzz4000, app(ty_[], ccb)) → new_esEs18(zzz5000, zzz4000, ccb)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_esEs12(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_lt19(zzz19011, zzz197011, ty_Ordering) → new_lt5(zzz19011, zzz197011)
new_esEs24(zzz5001, zzz4001, app(ty_[], cah)) → new_esEs18(zzz5001, zzz4001, cah)
new_ltEs5(True, True) → True
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Maybe, dd), de) → new_ltEs8(zzz19010, zzz197010, dd)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Ordering, cda) → new_esEs8(zzz5000, zzz4000)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Maybe, eh)) → new_ltEs8(zzz19010, zzz197010, eh)
new_esEs26(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(app(app(ty_@3, bbe), bbf), bbg)) → new_ltEs9(zzz1901, zzz19701, bbe, bbf, bbg)
new_esEs8(GT, GT) → True
new_compare5(zzz19000, zzz197000, ty_Float) → new_compare13(zzz19000, zzz197000)
new_esEs25(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(ty_Either, cfb), cfc)) → new_esEs7(zzz5000, zzz4000, cfb, cfc)
new_lt21(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_esEs22(zzz19010, zzz197010, app(ty_[], bgb)) → new_esEs18(zzz19010, zzz197010, bgb)
new_ltEs9(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), bbe, bbf, bbg) → new_pePe(new_lt20(zzz19010, zzz197010, bbe), new_asAs(new_esEs22(zzz19010, zzz197010, bbe), new_pePe(new_lt19(zzz19011, zzz197011, bbf), new_asAs(new_esEs21(zzz19011, zzz197011, bbf), new_ltEs19(zzz19012, zzz197012, bbg)))))
new_lt20(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Int) → new_ltEs15(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(ty_Ratio, dca)) → new_lt10(zzz19010, zzz197010, dca)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Integer) → new_ltEs11(zzz19011, zzz197011)
new_esEs20(zzz1900, zzz19700, ty_Ordering) → new_esEs8(zzz1900, zzz19700)
new_esEs23(zzz5002, zzz4002, ty_Ordering) → new_esEs8(zzz5002, zzz4002)
new_ltEs5(False, False) → True
new_ltEs18(zzz1901, zzz19701, app(app(ty_Either, eg), de)) → new_ltEs7(zzz1901, zzz19701, eg, de)
new_ltEs19(zzz19012, zzz197012, app(app(app(ty_@3, bdb), bdc), bdd)) → new_ltEs9(zzz19012, zzz197012, bdb, bdc, bdd)
new_ltEs20(zzz19011, zzz197011, app(app(app(ty_@3, dad), dae), daf)) → new_ltEs9(zzz19011, zzz197011, dad, dae, daf)
new_lt4(zzz1900, zzz19700) → new_esEs8(new_compare10(zzz1900, zzz19700), LT)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Bool, de) → new_ltEs5(zzz19010, zzz197010)
new_ltEs13(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bca, bcb) → new_pePe(new_lt21(zzz19010, zzz197010, bca), new_asAs(new_esEs27(zzz19010, zzz197010, bca), new_ltEs20(zzz19011, zzz197011, bcb)))
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_[], beh)) → new_esEs18(zzz19011, zzz197011, beh)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Integer, cda) → new_esEs15(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Left(zzz197010), eg, de) → False
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_@2, cea), ceb), cda) → new_esEs6(zzz5000, zzz4000, cea, ceb)
new_ltEs19(zzz19012, zzz197012, ty_Ordering) → new_ltEs4(zzz19012, zzz197012)
new_primEqInt(Neg(Zero), Neg(Succ(zzz40000))) → False
new_primEqInt(Neg(Succ(zzz50000)), Neg(Zero)) → False
new_compare10(Integer(zzz19000), Integer(zzz197000)) → new_primCmpInt(zzz19000, zzz197000)
new_esEs8(EQ, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_Either, daa), dab)) → new_ltEs7(zzz19010, zzz197010, daa, dab)
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_compare19(zzz1900, zzz19700, False, cf, cg, da) → GT
new_esEs26(zzz5000, zzz4000, app(ty_[], cgc)) → new_esEs18(zzz5000, zzz4000, cgc)
new_esEs22(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_esEs5(zzz19010, zzz197010, bff, bfg, bfh)
new_compare113(zzz286, zzz287, zzz288, zzz289, True, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc)
new_esEs20(zzz1900, zzz19700, ty_@0) → new_esEs19(zzz1900, zzz19700)
new_esEs19(@0, @0) → True
new_esEs26(zzz5000, zzz4000, app(app(ty_Either, cge), cgf)) → new_esEs7(zzz5000, zzz4000, cge, cgf)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Ordering) → new_ltEs4(zzz1901, zzz19701)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_ltEs4(EQ, LT) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_Either, ddf), ddg)) → new_esEs7(zzz5000, zzz4000, ddf, ddg)
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt19(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_lt16(zzz19011, zzz197011, bfc, bfd)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(ty_@2, cfd), cfe)) → new_esEs6(zzz5000, zzz4000, cfd, cfe)
new_esEs22(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_@0) → new_compare8(zzz19000, zzz197000)
new_esEs22(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_esEs4(zzz19010, zzz197010, bfe)
new_lt21(zzz19010, zzz197010, app(app(app(ty_@3, dbf), dbg), dbh)) → new_lt8(zzz19010, zzz197010, dbf, dbg, dbh)
new_esEs25(zzz5000, zzz4000, app(ty_Maybe, ccc)) → new_esEs4(zzz5000, zzz4000, ccc)
new_compare112(zzz1900, zzz19700, True) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Float, de) → new_ltEs14(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Bool) → new_ltEs5(zzz1901, zzz19701)
new_primEqInt(Pos(Succ(zzz50000)), Pos(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs12(zzz5001, zzz4001, app(app(app(ty_@3, gg), gh), ha)) → new_esEs5(zzz5001, zzz4001, gg, gh, ha)
new_compare27(zzz1900, zzz19700, True, bcg, bch) → EQ
new_lt19(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_lt12(zzz19011, zzz197011, bfa, bfb)
new_ltEs20(zzz19011, zzz197011, ty_Float) → new_ltEs14(zzz19011, zzz197011)
new_ltEs18(zzz1901, zzz19701, ty_@0) → new_ltEs10(zzz1901, zzz19701)
new_esEs23(zzz5002, zzz4002, ty_Char) → new_esEs17(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_primEqNat0(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat0(zzz50000, zzz40000)
new_esEs27(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_[], ceh)) → new_esEs18(zzz5000, zzz4000, ceh)
new_esEs23(zzz5002, zzz4002, app(ty_Ratio, bhb)) → new_esEs14(zzz5002, zzz4002, bhb)
new_esEs13(zzz5000, zzz4000, app(app(app(ty_@3, baa), bab), bac)) → new_esEs5(zzz5000, zzz4000, baa, bab, bac)
new_compare5(zzz19000, zzz197000, ty_Int) → new_compare14(zzz19000, zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_esEs14(:%(zzz5000, zzz5001), :%(zzz4000, zzz4001), deb) → new_asAs(new_esEs29(zzz5000, zzz4000, deb), new_esEs28(zzz5001, zzz4001, deb))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, dda), ddb), ddc)) → new_esEs5(zzz5000, zzz4000, dda, ddb, ddc)
new_ltEs20(zzz19011, zzz197011, ty_Char) → new_ltEs16(zzz19011, zzz197011)
new_esEs22(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_lt10(zzz1900, zzz19700, bcd) → new_esEs8(new_compare11(zzz1900, zzz19700, bcd), LT)
new_ltEs4(GT, EQ) → False
new_primCompAux00(zzz323, LT) → LT
new_esEs25(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_lt6(zzz1900, zzz19700, ty_Integer) → new_lt4(zzz1900, zzz19700)
new_esEs28(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_compare114(zzz1900, zzz19700, True, bcg, bch) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Int, de) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(app(ty_Either, bea), beb)) → new_ltEs7(zzz19012, zzz197012, bea, beb)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_Ratio, ced)) → new_esEs14(zzz5000, zzz4000, ced)
new_ltEs8(Just(zzz19010), Nothing, bbd) → False
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs27(zzz19010, zzz197010, app(app(app(ty_@3, dbf), dbg), dbh)) → new_esEs5(zzz19010, zzz197010, dbf, dbg, dbh)
new_esEs21(zzz19011, zzz197011, ty_Int) → new_esEs11(zzz19011, zzz197011)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Succ(zzz50000)), Pos(Zero)) → False
new_esEs27(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_ltEs4(EQ, EQ) → True
new_ltEs18(zzz1901, zzz19701, ty_Integer) → new_ltEs11(zzz1901, zzz19701)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Ratio, che)) → new_ltEs6(zzz19010, zzz197010, che)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_ltEs4(GT, LT) → False
new_sr0(Integer(zzz1970000), Integer(zzz190010)) → Integer(new_primMulInt(zzz1970000, zzz190010))
new_compare30(zzz190, zzz191, zzz197, h, ba) → new_compare25(@2(zzz190, zzz191), zzz197, new_esEs6(@2(zzz190, zzz191), zzz197, h, ba), h, ba)
new_primEqInt(Neg(Succ(zzz50000)), Pos(zzz4000)) → False
new_primEqInt(Pos(Succ(zzz50000)), Neg(zzz4000)) → False
new_compare24(zzz1900, zzz19700, False) → new_compare111(zzz1900, zzz19700, new_ltEs5(zzz1900, zzz19700))
new_ltEs5(False, True) → True
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_@2, ddh), dea)) → new_esEs6(zzz5000, zzz4000, ddh, dea)
new_lt16(zzz1900, zzz19700, bcg, bch) → new_esEs8(new_compare16(zzz1900, zzz19700, bcg, bch), LT)
new_esEs22(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_esEs6(zzz19010, zzz197010, bgc, bgd)
new_compare7(zzz1900, zzz19700, cf, cg, da) → new_compare26(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Ordering, de) → new_ltEs4(zzz19010, zzz197010)
new_compare9(zzz1900, zzz19700) → new_compare28(zzz1900, zzz19700, new_esEs8(zzz1900, zzz19700))
new_primEqInt(Neg(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz40000))) → False
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Char, de) → new_ltEs16(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Integer) → new_esEs15(zzz19011, zzz197011)
new_esEs18(:(zzz5000, zzz5001), :(zzz4000, zzz4001), cff) → new_asAs(new_esEs26(zzz5000, zzz4000, cff), new_esEs18(zzz5001, zzz4001, cff))
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCompAux00(zzz323, EQ) → zzz323
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_Maybe, cfa)) → new_esEs4(zzz5000, zzz4000, cfa)
new_compare24(zzz1900, zzz19700, True) → EQ
new_lt21(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_esEs13(zzz5000, zzz4000, app(ty_[], bad)) → new_esEs18(zzz5000, zzz4000, bad)
new_lt17(zzz1900, zzz19700) → new_esEs8(new_compare17(zzz1900, zzz19700), LT)
new_esEs26(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Double) → new_esEs10(zzz19011, zzz197011)
new_ltEs19(zzz19012, zzz197012, app(app(ty_@2, bdg), bdh)) → new_ltEs13(zzz19012, zzz197012, bdg, bdh)
new_compare13(Float(zzz19000, zzz19001), Float(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_not(False) → True
new_compare114(zzz1900, zzz19700, False, bcg, bch) → GT
new_esEs11(zzz500, zzz400) → new_primEqInt(zzz500, zzz400)
new_compare5(zzz19000, zzz197000, app(app(ty_@2, cb), cc)) → new_compare12(zzz19000, zzz197000, cb, cc)
new_lt20(zzz19010, zzz197010, app(ty_[], bgb)) → new_lt11(zzz19010, zzz197010, bgb)
new_esEs13(zzz5000, zzz4000, app(app(ty_Either, baf), bag)) → new_esEs7(zzz5000, zzz4000, baf, bag)
new_ltEs17(zzz1901, zzz19701) → new_not(new_esEs8(new_compare18(zzz1901, zzz19701), GT))
new_lt20(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_esEs26(zzz5000, zzz4000, app(ty_Ratio, cfg)) → new_esEs14(zzz5000, zzz4000, cfg)
new_esEs23(zzz5002, zzz4002, app(app(ty_@2, cab), cac)) → new_esEs6(zzz5002, zzz4002, cab, cac)
new_esEs13(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs25(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_ltEs19(zzz19012, zzz197012, app(ty_[], bdf)) → new_ltEs12(zzz19012, zzz197012, bdf)
new_lt6(zzz1900, zzz19700, app(ty_[], bc)) → new_lt11(zzz1900, zzz19700, bc)
new_lt20(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_lt16(zzz19010, zzz197010, bge, bgf)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_[], ff)) → new_ltEs12(zzz19010, zzz197010, ff)
new_compare0(:(zzz19000, zzz19001), [], bc) → GT
new_lt21(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_compare28(zzz1900, zzz19700, True) → EQ
new_lt19(zzz19011, zzz197011, ty_Integer) → new_lt4(zzz19011, zzz197011)
new_esEs27(zzz19010, zzz197010, app(ty_[], dcb)) → new_esEs18(zzz19010, zzz197010, dcb)
new_esEs9(True, True) → True
new_esEs27(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_esEs5(zzz1900, zzz19700, cf, cg, da)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs21(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_esEs5(zzz19011, zzz197011, bed, bee, bef)
new_lt19(zzz19011, zzz197011, ty_Char) → new_lt17(zzz19011, zzz197011)
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Integer) → new_compare10(new_sr0(zzz19000, zzz197001), new_sr0(zzz197000, zzz19001))
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Ratio, cch), cda) → new_esEs14(zzz5000, zzz4000, cch)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs27(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(ty_Maybe, bda)) → new_ltEs8(zzz19012, zzz197012, bda)
new_esEs27(zzz19010, zzz197010, app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz19010, zzz197010, dcc, dcd)
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_ltEs19(zzz19012, zzz197012, app(ty_Ratio, bde)) → new_ltEs6(zzz19012, zzz197012, bde)
new_esEs20(zzz1900, zzz19700, ty_Integer) → new_esEs15(zzz1900, zzz19700)
new_lt9(zzz1900, zzz19700) → new_esEs8(new_compare8(zzz1900, zzz19700), LT)
new_primEqNat0(Succ(zzz50000), Zero) → False
new_primEqNat0(Zero, Succ(zzz40000)) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_lt12(zzz19010, zzz197010, bgc, bgd)
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_Either, ee), ef), de) → new_ltEs7(zzz19010, zzz197010, ee, ef)
new_compare25(zzz190, zzz1970, True, bbb, bbc) → EQ
new_esEs24(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs4(Nothing, Nothing, dcg) → True
new_lt19(zzz19011, zzz197011, app(ty_[], beh)) → new_lt11(zzz19011, zzz197011, beh)
new_ltEs6(zzz1901, zzz19701, gc) → new_not(new_esEs8(new_compare11(zzz1901, zzz19701, gc), GT))
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Char, cda) → new_esEs17(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Bool) → new_esEs9(zzz19011, zzz197011)
new_esEs12(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_esEs23(zzz5002, zzz4002, ty_Int) → new_esEs11(zzz5002, zzz4002)
new_lt20(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, ty_Ordering) → new_lt5(zzz1900, zzz19700)
new_esEs27(zzz19010, zzz197010, app(ty_Maybe, dbe)) → new_esEs4(zzz19010, zzz197010, dbe)
new_esEs21(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_esEs7(zzz19011, zzz197011, bfc, bfd)
new_ltEs20(zzz19011, zzz197011, ty_Double) → new_ltEs17(zzz19011, zzz197011)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_ltEs4(LT, GT) → True
new_lt15(zzz1900, zzz19700) → new_esEs8(new_compare15(zzz1900, zzz19700), LT)
new_lt21(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Char) → new_esEs17(zzz19011, zzz197011)
new_ltEs12(zzz1901, zzz19701, bbh) → new_not(new_esEs8(new_compare0(zzz1901, zzz19701, bbh), GT))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs20(zzz1900, zzz19700, ty_Bool) → new_esEs9(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_esEs25(zzz5000, zzz4000, app(ty_Ratio, cbf)) → new_esEs14(zzz5000, zzz4000, cbf)
new_lt20(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Float) → new_ltEs14(zzz1901, zzz19701)
new_compare5(zzz19000, zzz197000, ty_Integer) → new_compare10(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, app(app(ty_@2, bah), bba)) → new_esEs6(zzz5000, zzz4000, bah, bba)
new_lt6(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_lt16(zzz1900, zzz19700, bcg, bch)
new_esEs24(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, app(app(ty_Either, hd), he)) → new_esEs7(zzz5001, zzz4001, hd, he)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Integer, de) → new_ltEs11(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Integer) → new_ltEs11(zzz19012, zzz197012)
new_esEs25(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_esEs4(zzz19011, zzz197011, bec)
new_esEs9(False, True) → False
new_esEs9(True, False) → False
new_esEs20(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_esEs7(zzz1900, zzz19700, bcg, bch)
new_esEs27(zzz19010, zzz197010, app(ty_Ratio, dca)) → new_esEs14(zzz19010, zzz197010, dca)
new_compare29(zzz1900, zzz19700, True, bcc) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_ltEs4(LT, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Maybe, cha)) → new_ltEs8(zzz19010, zzz197010, cha)
new_lt20(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_lt7(zzz19010, zzz197010, bfe)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_Either, ga), gb)) → new_ltEs7(zzz19010, zzz197010, ga, gb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, app(ty_Maybe, hc)) → new_esEs4(zzz5001, zzz4001, hc)
new_asAs(False, zzz239) → False
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Int) → new_compare14(new_sr(zzz19000, zzz197001), new_sr(zzz197000, zzz19001))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, app(ty_Ratio, hh)) → new_esEs14(zzz5000, zzz4000, hh)
new_compare12(zzz1900, zzz19700, bce, bcf) → new_compare25(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, bce, bcf), bce, bcf)
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Float) → new_ltEs14(zzz19012, zzz197012)
new_esEs18([], [], cff) → True
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Ordering) → new_esEs8(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_[], ddd)) → new_esEs18(zzz5000, zzz4000, ddd)
new_lt19(zzz19011, zzz197011, ty_Double) → new_lt18(zzz19011, zzz197011)
new_esEs29(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, ty_Char) → new_ltEs16(zzz19012, zzz197012)
new_ltEs19(zzz19012, zzz197012, ty_@0) → new_ltEs10(zzz19012, zzz197012)
new_esEs20(zzz1900, zzz19700, ty_Float) → new_esEs16(zzz1900, zzz19700)
new_lt11(zzz1900, zzz19700, bc) → new_esEs8(new_compare0(zzz1900, zzz19700, bc), LT)
new_lt13(zzz1900, zzz19700) → new_esEs8(new_compare13(zzz1900, zzz19700), LT)
new_esEs28(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_lt20(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare110(zzz286, zzz287, zzz288, zzz289, False, db, dc) → GT
new_esEs5(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), bgg, bgh, bha) → new_asAs(new_esEs25(zzz5000, zzz4000, bgg), new_asAs(new_esEs24(zzz5001, zzz4001, bgh), new_esEs23(zzz5002, zzz4002, bha)))
new_ltEs18(zzz1901, zzz19701, app(app(ty_@2, bca), bcb)) → new_ltEs13(zzz1901, zzz19701, bca, bcb)
new_esEs26(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Integer) → new_esEs15(zzz5002, zzz4002)
new_lt19(zzz19011, zzz197011, ty_Bool) → new_lt15(zzz19011, zzz197011)
new_compare5(zzz19000, zzz197000, ty_Bool) → new_compare15(zzz19000, zzz197000)
new_esEs9(False, False) → True
new_ltEs19(zzz19012, zzz197012, ty_Bool) → new_ltEs5(zzz19012, zzz197012)
new_esEs22(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, app(ty_Maybe, bd)) → new_compare6(zzz19000, zzz197000, bd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_@2, ec), ed), de) → new_ltEs13(zzz19010, zzz197010, ec, ed)
new_ltEs20(zzz19011, zzz197011, app(app(ty_Either, dbc), dbd)) → new_ltEs7(zzz19011, zzz197011, dbc, dbd)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(app(ty_@3, fa), fb), fc)) → new_ltEs9(zzz19010, zzz197010, fa, fb, fc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_[], eb), de) → new_ltEs12(zzz19010, zzz197010, eb)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(ty_Maybe, bbd)) → new_ltEs8(zzz1901, zzz19701, bbd)
new_ltEs4(LT, LT) → True
new_ltEs19(zzz19012, zzz197012, ty_Int) → new_ltEs15(zzz19012, zzz197012)
new_ltEs8(Nothing, Nothing, bbd) → True
new_ltEs10(zzz1901, zzz19701) → new_not(new_esEs8(new_compare8(zzz1901, zzz19701), GT))
new_esEs23(zzz5002, zzz4002, ty_Double) → new_esEs10(zzz5002, zzz4002)
new_esEs25(zzz5000, zzz4000, app(app(app(ty_@3, cbg), cbh), cca)) → new_esEs5(zzz5000, zzz4000, cbg, cbh, cca)
new_ltEs20(zzz19011, zzz197011, app(ty_Ratio, dag)) → new_ltEs6(zzz19011, zzz197011, dag)
new_lt5(zzz1900, zzz19700) → new_esEs8(new_compare9(zzz1900, zzz19700), LT)
new_compare112(zzz1900, zzz19700, False) → GT
new_esEs12(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_lt12(zzz1900, zzz19700, bce, bcf) → new_esEs8(new_compare12(zzz1900, zzz19700, bce, bcf), LT)
new_esEs12(zzz5001, zzz4001, app(ty_Ratio, gf)) → new_esEs14(zzz5001, zzz4001, gf)
new_compare5(zzz19000, zzz197000, ty_Ordering) → new_compare9(zzz19000, zzz197000)
new_lt6(zzz1900, zzz19700, ty_Float) → new_lt13(zzz1900, zzz19700)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_compare5(zzz19000, zzz197000, app(app(app(ty_@3, be), bf), bg)) → new_compare7(zzz19000, zzz197000, be, bf, bg)
new_esEs20(zzz1900, zzz19700, ty_Char) → new_esEs17(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_compare26(zzz1900, zzz19700, True, cf, cg, da) → EQ
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_esEs22(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_lt7(zzz1900, zzz19700, bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_@2, chg), chh)) → new_ltEs13(zzz19010, zzz197010, chg, chh)
new_lt6(zzz1900, zzz19700, ty_Int) → new_lt14(zzz1900, zzz19700)
new_compare0([], :(zzz197000, zzz197001), bc) → LT
new_esEs12(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs13(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_asAs(True, zzz239) → zzz239
new_esEs25(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_@0, cda) → new_esEs19(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(app(app(ty_@3, cfh), cga), cgb)) → new_esEs5(zzz5000, zzz4000, cfh, cga, cgb)
new_esEs27(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Double) → new_compare18(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt20(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_lt10(zzz19010, zzz197010, bga)
new_lt6(zzz1900, zzz19700, ty_Char) → new_lt17(zzz1900, zzz19700)
new_lt19(zzz19011, zzz197011, ty_@0) → new_lt9(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare8(@0, @0) → EQ
new_ltEs11(zzz1901, zzz19701) → new_not(new_esEs8(new_compare10(zzz1901, zzz19701), GT))
new_esEs26(zzz5000, zzz4000, app(app(ty_@2, cgg), cgh)) → new_esEs6(zzz5000, zzz4000, cgg, cgh)
new_lt20(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_primCompAux0(zzz19000, zzz197000, zzz316, bc) → new_primCompAux00(zzz316, new_compare5(zzz19000, zzz197000, bc))
new_esEs23(zzz5002, zzz4002, app(app(app(ty_@3, bhc), bhd), bhe)) → new_esEs5(zzz5002, zzz4002, bhc, bhd, bhe)
new_ltEs18(zzz1901, zzz19701, app(ty_[], bbh)) → new_ltEs12(zzz1901, zzz19701, bbh)
new_ltEs20(zzz19011, zzz197011, app(app(ty_@2, dba), dbb)) → new_ltEs13(zzz19011, zzz197011, dba, dbb)
new_compare5(zzz19000, zzz197000, app(app(ty_Either, cd), ce)) → new_compare16(zzz19000, zzz197000, cd, ce)
new_lt18(zzz1900, zzz19700) → new_esEs8(new_compare18(zzz1900, zzz19700), LT)
new_compare28(zzz1900, zzz19700, False) → new_compare112(zzz1900, zzz19700, new_ltEs4(zzz1900, zzz19700))
new_lt21(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_ltEs4(GT, GT) → True
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Ratio, fd)) → new_ltEs6(zzz19010, zzz197010, fd)
new_esEs23(zzz5002, zzz4002, app(ty_[], bhf)) → new_esEs18(zzz5002, zzz4002, bhf)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_[], chf)) → new_ltEs12(zzz19010, zzz197010, chf)
new_esEs20(zzz1900, zzz19700, ty_Double) → new_esEs10(zzz1900, zzz19700)
new_primCompAux00(zzz323, GT) → GT
new_esEs25(zzz5000, zzz4000, app(app(ty_Either, ccd), cce)) → new_esEs7(zzz5000, zzz4000, ccd, cce)
new_compare6(zzz1900, zzz19700, bcc) → new_compare29(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, bcc), bcc)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Float, cda) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Float) → new_esEs16(zzz19011, zzz197011)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_lt6(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_lt12(zzz1900, zzz19700, bce, bcf)
new_lt19(zzz19011, zzz197011, ty_Int) → new_lt14(zzz19011, zzz197011)
new_esEs10(Double(zzz5000, zzz5001), Double(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Double, de) → new_ltEs17(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Int) → new_ltEs15(zzz1901, zzz19701)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_esEs27(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, app(app(ty_@2, hf), hg)) → new_esEs6(zzz5001, zzz4001, hf, hg)
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_not(True) → False
new_compare5(zzz19000, zzz197000, app(ty_[], ca)) → new_compare0(zzz19000, zzz197000, ca)

The set Q consists of the following terms:

new_lt6(x0, x1, ty_Float)
new_compare25(@2(x0, x1), @2(x2, x3), False, x4, x5)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, ty_Integer)
new_compare5(x0, x1, app(ty_Ratio, x2))
new_lt16(x0, x1, x2, x3)
new_esEs13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_gt0(x0, x1, x2, x3, x4)
new_ltEs6(x0, x1, x2)
new_lt6(x0, x1, ty_@0)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_asAs(True, x0)
new_compare13(Float(x0, x1), Float(x2, x3))
new_compare30(x0, x1, x2, x3, x4)
new_esEs23(x0, x1, ty_@0)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Nothing, Just(x0), x1)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpNat0(Succ(x0), Zero)
new_ltEs18(x0, x1, ty_Ordering)
new_compare5(x0, x1, ty_Float)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare0([], :(x0, x1), x2)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, ty_Ordering)
new_esEs27(x0, x1, app(ty_[], x2))
new_lt6(x0, x1, ty_Integer)
new_esEs12(x0, x1, ty_Char)
new_esEs13(x0, x1, ty_Int)
new_lt19(x0, x1, app(ty_[], x2))
new_compare0([], [], x0)
new_esEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs29(x0, x1, ty_Int)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Ordering)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_lt20(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Char)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Integer)
new_esEs12(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs12(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs29(x0, x1, ty_Integer)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(GT, GT)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_esEs21(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Float)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_compare26(x0, x1, False, x2, x3, x4)
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_compare29(x0, x1, False, x2)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Nothing, x1)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux00(x0, LT)
new_ltEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt6(x0, x1, ty_Bool)
new_lt10(x0, x1, x2)
new_esEs8(LT, LT)
new_esEs18([], [], x0)
new_esEs27(x0, x1, ty_Double)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs21(x0, x1, ty_Char)
new_ltEs18(x0, x1, ty_Bool)
new_ltEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs20(x0, x1, ty_Float)
new_ltEs5(False, False)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_compare8(@0, @0)
new_esEs26(x0, x1, ty_Int)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Integer)
new_compare115(x0, x1, True, x2)
new_esEs21(x0, x1, ty_@0)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_ltEs20(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_compare16(x0, x1, x2, x3)
new_esEs18([], :(x0, x1), x2)
new_esEs26(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Float)
new_esEs27(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt20(x0, x1, ty_Bool)
new_esEs4(Nothing, Nothing, x0)
new_lt21(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare113(x0, x1, x2, x3, False, x4, x5, x6)
new_ltEs16(x0, x1)
new_ltEs8(Nothing, Just(x0), x1)
new_primCompAux0(x0, x1, x2, x3)
new_lt11(x0, x1, x2)
new_ltEs18(x0, x1, ty_Integer)
new_compare114(x0, x1, False, x2, x3)
new_primEqNat0(Zero, Zero)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs12(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(True, True)
new_esEs21(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, ty_Int)
new_lt20(x0, x1, ty_@0)
new_lt21(x0, x1, app(ty_[], x2))
new_esEs13(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Double)
new_lt4(x0, x1)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Integer)
new_lt6(x0, x1, ty_Int)
new_primMulNat0(Zero, Zero)
new_ltEs19(x0, x1, ty_Int)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_primCompAux00(x0, GT)
new_compare9(x0, x1)
new_ltEs7(Right(x0), Left(x1), x2, x3)
new_ltEs7(Left(x0), Right(x1), x2, x3)
new_ltEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_lt19(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_compare110(x0, x1, x2, x3, True, x4, x5)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs17(x0, x1)
new_esEs23(x0, x1, ty_Float)
new_compare5(x0, x1, ty_Double)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(GT, GT)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_pePe(False, x0)
new_compare24(x0, x1, False)
new_compare5(x0, x1, ty_Ordering)
new_compare27(x0, x1, True, x2, x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Int)
new_lt13(x0, x1)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Double)
new_compare17(Char(x0), Char(x1))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs12(x0, x1, ty_Float)
new_esEs13(x0, x1, ty_Double)
new_compare19(x0, x1, True, x2, x3, x4)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_lt5(x0, x1)
new_esEs13(x0, x1, ty_Char)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs12(x0, x1, ty_Double)
new_compare10(Integer(x0), Integer(x1))
new_esEs26(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs26(x0, x1, ty_@0)
new_esEs14(:%(x0, x1), :%(x2, x3), x4)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primMulNat0(Succ(x0), Zero)
new_compare5(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare110(x0, x1, x2, x3, False, x4, x5)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare114(x0, x1, True, x2, x3)
new_primMulNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Char)
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs20(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Ordering)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Integer)
new_primPlusNat0(Zero, Zero)
new_lt19(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_ltEs19(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, app(ty_Maybe, x2))
new_esEs13(x0, x1, app(ty_Ratio, x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Bool)
new_compare14(x0, x1)
new_esEs26(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs23(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Float)
new_ltEs13(@2(x0, x1), @2(x2, x3), x4, x5)
new_compare112(x0, x1, True)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs24(x0, x1, ty_@0)
new_ltEs18(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Float)
new_compare0(:(x0, x1), [], x2)
new_esEs12(x0, x1, ty_Int)
new_compare5(x0, x1, ty_Int)
new_compare29(x0, x1, True, x2)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Float)
new_ltEs4(EQ, EQ)
new_esEs18(:(x0, x1), [], x2)
new_ltEs8(Nothing, Nothing, x0)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Float)
new_compare18(Double(x0, x1), Double(x2, x3))
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_compare5(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Double)
new_lt6(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Double)
new_ltEs4(LT, EQ)
new_lt21(x0, x1, ty_Double)
new_ltEs4(EQ, LT)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_sr0(Integer(x0), Integer(x1))
new_pePe(True, x0)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs12(x0, x1, x2)
new_ltEs20(x0, x1, ty_Double)
new_lt17(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_primPlusNat1(Zero, x0)
new_esEs22(x0, x1, ty_@0)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs18(:(x0, x1), :(x2, x3), x4)
new_compare111(x0, x1, True)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs20(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare5(x0, x1, ty_@0)
new_compare113(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs27(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), x1)
new_ltEs14(x0, x1)
new_primEqNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs12(x0, x1, ty_Ordering)
new_ltEs7(Left(x0), Left(x1), ty_Double, x2)
new_ltEs18(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_lt6(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs21(x0, x1, ty_Bool)
new_asAs(False, x0)
new_compare25(x0, x1, True, x2, x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, ty_Double)
new_primEqInt(Neg(Zero), Neg(Zero))
new_lt21(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_ltEs10(x0, x1)
new_esEs15(Integer(x0), Integer(x1))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_ltEs11(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs21(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_primPlusNat0(Zero, Succ(x0))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs13(x0, x1, ty_Ordering)
new_esEs12(x0, x1, ty_Integer)
new_ltEs4(LT, LT)
new_esEs12(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare115(x0, x1, False, x2)
new_esEs24(x0, x1, ty_Ordering)
new_compare5(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare7(x0, x1, x2, x3, x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Float)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Bool)
new_esEs20(x0, x1, ty_Float)
new_ltEs8(Just(x0), Nothing, x1)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_esEs25(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_primMulInt(Pos(x0), Pos(x1))
new_lt20(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_ltEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_lt21(x0, x1, ty_@0)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt19(x0, x1, ty_Char)
new_esEs13(x0, x1, app(ty_[], x2))
new_lt8(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Bool)
new_ltEs15(x0, x1)
new_esEs12(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs25(x0, x1, ty_Int)
new_ltEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs24(x0, x1, ty_Double)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, ty_Integer)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, ty_Bool)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, False)
new_ltEs20(x0, x1, ty_Bool)
new_esEs9(False, False)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs26(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs27(x0, x1, ty_@0)
new_esEs13(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_Int)
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_compare27(x0, x1, False, x2, x3)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_esEs25(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare15(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_lt12(x0, x1, x2, x3)
new_esEs13(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_compare111(x0, x1, False)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs13(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(True, True)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs17(Char(x0), Char(x1))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(EQ, GT)
new_ltEs4(GT, EQ)
new_esEs13(x0, x1, ty_@0)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Int)
new_not(True)
new_esEs22(x0, x1, ty_Ordering)
new_esEs27(x0, x1, ty_Ordering)
new_esEs10(Double(x0, x1), Double(x2, x3))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_compare6(x0, x1, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs11(x0, x1)
new_esEs27(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_primPlusNat0(Succ(x0), Zero)
new_ltEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Bool)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_lt14(x0, x1)
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs25(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs20(x0, x1, app(ty_[], x2))
new_compare24(x0, x1, True)
new_esEs22(x0, x1, ty_Int)
new_esEs13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs9(False, True)
new_esEs9(True, False)
new_lt19(x0, x1, ty_Integer)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs25(x0, x1, ty_@0)
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_lt18(x0, x1)
new_lt7(x0, x1, x2)
new_esEs24(x0, x1, ty_Bool)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_primCmpNat0(Zero, Succ(x0))
new_ltEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_lt6(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_@0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Float)
new_compare26(x0, x1, True, x2, x3, x4)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, ty_Char)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, app(ty_Maybe, x2))
new_compare28(x0, x1, True)
new_esEs20(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs20(x0, x1, ty_Ordering)
new_compare12(x0, x1, x2, x3)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux00(x0, EQ)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs19(@0, @0)
new_ltEs4(GT, LT)
new_ltEs4(LT, GT)
new_ltEs5(True, False)
new_compare19(x0, x1, False, x2, x3, x4)
new_ltEs5(False, True)
new_ltEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt9(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primEqNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_esEs12(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs20(x0, x1, ty_@0)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_compare28(x0, x1, False)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_splitGT2(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, False, h, ba, bb) → new_splitGT1(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, new_lt12(@2(zzz190, zzz191), zzz1890, h, ba), h, ba, bb)
new_splitGT1(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, True, h, ba, bb) → new_splitGT(zzz1893, zzz190, zzz191, h, ba, bb)
new_splitGT2(zzz1890, zzz1891, zzz1892, zzz1893, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), zzz190, zzz191, True, h, ba, bb) → new_splitGT2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz190, zzz191, new_gt0(zzz190, zzz191, zzz18940, h, ba), h, ba, bb)
new_splitGT(Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), zzz190, zzz191, h, ba, bb) → new_splitGT2(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz190, zzz191, new_gt0(zzz190, zzz191, zzz18940, h, ba), h, ba, bb)

The TRS R consists of the following rules:

new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Maybe, dde)) → new_esEs4(zzz5000, zzz4000, dde)
new_esEs23(zzz5002, zzz4002, app(app(ty_Either, bhh), caa)) → new_esEs7(zzz5002, zzz4002, bhh, caa)
new_lt7(zzz1900, zzz19700, bcc) → new_esEs8(new_compare6(zzz1900, zzz19700, bcc), LT)
new_lt21(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare17(Char(zzz19000), Char(zzz197000)) → new_primCmpNat0(zzz19000, zzz197000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_Either, cdg), cdh), cda) → new_esEs7(zzz5000, zzz4000, cdg, cdh)
new_ltEs14(zzz1901, zzz19701) → new_not(new_esEs8(new_compare13(zzz1901, zzz19701), GT))
new_esEs21(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_esEs6(zzz19011, zzz197011, bfa, bfb)
new_lt19(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_lt10(zzz19011, zzz197011, beg)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_ltEs4(EQ, GT) → True
new_esEs24(zzz5001, zzz4001, app(app(app(ty_@3, cae), caf), cag)) → new_esEs5(zzz5001, zzz4001, cae, caf, cag)
new_lt19(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_lt8(zzz19011, zzz197011, bed, bee, bef)
new_compare26(zzz1900, zzz19700, False, cf, cg, da) → new_compare19(zzz1900, zzz19700, new_ltEs9(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc) → LT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs17(Char(zzz5000), Char(zzz4000)) → new_primEqNat0(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_@0, de) → new_ltEs10(zzz19010, zzz197010)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Maybe, cdf), cda) → new_esEs4(zzz5000, zzz4000, cdf)
new_esEs24(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Double, cda) → new_esEs10(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Ratio, ea), de) → new_ltEs6(zzz19010, zzz197010, ea)
new_compare25(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, bbb, bbc) → new_compare113(zzz1900, zzz1901, zzz19700, zzz19701, new_lt6(zzz1900, zzz19700, bbb), new_asAs(new_esEs20(zzz1900, zzz19700, bbb), new_ltEs18(zzz1901, zzz19701, bbc)), bbb, bbc)
new_esEs24(zzz5001, zzz4001, app(ty_Maybe, cba)) → new_esEs4(zzz5001, zzz4001, cba)
new_esEs4(Nothing, Just(zzz4000), dcg) → False
new_esEs4(Just(zzz5000), Nothing, dcg) → False
new_esEs21(zzz19011, zzz197011, ty_@0) → new_esEs19(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_lt8(zzz19010, zzz197010, bff, bfg, bfh)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Ratio, dch)) → new_esEs14(zzz5000, zzz4000, dch)
new_esEs12(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_lt21(zzz19010, zzz197010, app(ty_Maybe, dbe)) → new_lt7(zzz19010, zzz197010, dbe)
new_compare27(zzz1900, zzz19700, False, bcg, bch) → new_compare114(zzz1900, zzz19700, new_ltEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs25(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Float) → new_esEs16(zzz5002, zzz4002)
new_ltEs20(zzz19011, zzz197011, ty_Bool) → new_ltEs5(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Char) → new_compare17(zzz19000, zzz197000)
new_ltEs7(Left(zzz19010), Right(zzz197010), eg, de) → True
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, cdb), cdc), cdd), cda) → new_esEs5(zzz5000, zzz4000, cdb, cdc, cdd)
new_esEs6(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), gd, ge) → new_asAs(new_esEs13(zzz5000, zzz4000, gd), new_esEs12(zzz5001, zzz4001, ge))
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs27(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_esEs4(zzz1900, zzz19700, bcc)
new_lt20(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_compare5(zzz19000, zzz197000, app(ty_Ratio, bh)) → new_compare11(zzz19000, zzz197000, bh)
new_esEs22(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, app(ty_Maybe, dac)) → new_ltEs8(zzz19011, zzz197011, dac)
new_ltEs18(zzz1901, zzz19701, ty_Char) → new_ltEs16(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(ty_[], hb)) → new_esEs18(zzz5001, zzz4001, hb)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_[], cde), cda) → new_esEs18(zzz5000, zzz4000, cde)
new_esEs24(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Bool, cda) → new_esEs9(zzz5000, zzz4000)
new_lt21(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_compare16(zzz1900, zzz19700, bcg, bch) → new_compare27(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bcg, bch), bcg, bch)
new_esEs23(zzz5002, zzz4002, app(ty_Maybe, bhg)) → new_esEs4(zzz5002, zzz4002, bhg)
new_ltEs18(zzz1901, zzz19701, app(ty_Ratio, gc)) → new_ltEs6(zzz1901, zzz19701, gc)
new_gt0(zzz190, zzz191, zzz197, h, ba) → new_esEs8(new_compare30(zzz190, zzz191, zzz197, h, ba), GT)
new_esEs13(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs20(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_esEs14(zzz1900, zzz19700, bcd)
new_esEs23(zzz5002, zzz4002, ty_Bool) → new_esEs9(zzz5002, zzz4002)
new_compare18(Double(zzz19000, zzz19001), Double(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(app(ty_@3, cee), cef), ceg)) → new_esEs5(zzz5000, zzz4000, cee, cef, ceg)
new_compare113(zzz286, zzz287, zzz288, zzz289, False, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, zzz291, db, dc)
new_lt6(zzz1900, zzz19700, app(ty_Ratio, bcd)) → new_lt10(zzz1900, zzz19700, bcd)
new_lt19(zzz19011, zzz197011, ty_Float) → new_lt13(zzz19011, zzz197011)
new_compare0(:(zzz19000, zzz19001), :(zzz197000, zzz197001), bc) → new_primCompAux0(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, bc), bc)
new_esEs22(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_esEs14(zzz19010, zzz197010, bga)
new_esEs21(zzz19011, zzz197011, app(ty_Ratio, beg)) → new_esEs14(zzz19011, zzz197011, beg)
new_esEs15(Integer(zzz5000), Integer(zzz4000)) → new_primEqInt(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(ty_Maybe, cgd)) → new_esEs4(zzz5000, zzz4000, cgd)
new_esEs20(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_esEs6(zzz1900, zzz19700, bce, bcf)
new_esEs22(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_esEs7(zzz19010, zzz197010, bge, bgf)
new_lt6(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_lt8(zzz1900, zzz19700, cf, cg, da)
new_esEs29(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare29(zzz1900, zzz19700, False, bcc) → new_compare115(zzz1900, zzz19700, new_ltEs8(zzz1900, zzz19700, bcc), bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, chb), chc), chd)) → new_ltEs9(zzz19010, zzz197010, chb, chc, chd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, df), dg), dh), de) → new_ltEs9(zzz19010, zzz197010, df, dg, dh)
new_lt21(zzz19010, zzz197010, app(app(ty_@2, dcc), dcd)) → new_lt12(zzz19010, zzz197010, dcc, dcd)
new_pePe(False, zzz315) → zzz315
new_esEs24(zzz5001, zzz4001, app(ty_Ratio, cad)) → new_esEs14(zzz5001, zzz4001, cad)
new_esEs23(zzz5002, zzz4002, ty_@0) → new_esEs19(zzz5002, zzz4002)
new_esEs27(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Left(zzz4000), cec, cda) → False
new_esEs7(Left(zzz5000), Right(zzz4000), cec, cda) → False
new_esEs18([], :(zzz4000, zzz4001), cff) → False
new_esEs18(:(zzz5000, zzz5001), [], cff) → False
new_ltEs16(zzz1901, zzz19701) → new_not(new_esEs8(new_compare17(zzz1901, zzz19701), GT))
new_lt21(zzz19010, zzz197010, app(ty_[], dcb)) → new_lt11(zzz19010, zzz197010, dcb)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_@2, fg), fh)) → new_ltEs13(zzz19010, zzz197010, fg, fh)
new_lt19(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_lt7(zzz19011, zzz197011, bec)
new_esEs27(zzz19010, zzz197010, app(app(ty_Either, dce), dcf)) → new_esEs7(zzz19010, zzz197010, dce, dcf)
new_compare19(zzz1900, zzz19700, True, cf, cg, da) → LT
new_ltEs20(zzz19011, zzz197011, ty_@0) → new_ltEs10(zzz19011, zzz197011)
new_esEs13(zzz5000, zzz4000, app(ty_Maybe, bae)) → new_esEs4(zzz5000, zzz4000, bae)
new_esEs26(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs15(zzz1901, zzz19701) → new_not(new_esEs8(new_compare14(zzz1901, zzz19701), GT))
new_esEs22(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_lt8(zzz1900, zzz19700, cf, cg, da) → new_esEs8(new_compare7(zzz1900, zzz19700, cf, cg, da), LT)
new_esEs20(zzz1900, zzz19700, app(ty_[], bc)) → new_esEs18(zzz1900, zzz19700, bc)
new_compare111(zzz1900, zzz19700, False) → GT
new_compare111(zzz1900, zzz19700, True) → LT
new_esEs22(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_ltEs20(zzz19011, zzz197011, app(ty_[], dah)) → new_ltEs12(zzz19011, zzz197011, dah)
new_lt6(zzz1900, zzz19700, ty_@0) → new_lt9(zzz1900, zzz19700)
new_ltEs19(zzz19012, zzz197012, ty_Double) → new_ltEs17(zzz19012, zzz197012)
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_compare115(zzz1900, zzz19700, False, bcc) → GT
new_ltEs8(Nothing, Just(zzz197010), bbd) → True
new_esEs25(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs16(Float(zzz5000, zzz5001), Float(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_esEs25(zzz5000, zzz4000, app(app(ty_@2, ccf), ccg)) → new_esEs6(zzz5000, zzz4000, ccf, ccg)
new_esEs8(LT, LT) → True
new_lt6(zzz1900, zzz19700, ty_Double) → new_lt18(zzz1900, zzz19700)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Int, cda) → new_esEs11(zzz5000, zzz4000)
new_compare115(zzz1900, zzz19700, True, bcc) → LT
new_esEs25(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_Either, cbb), cbc)) → new_esEs7(zzz5001, zzz4001, cbb, cbc)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_ltEs5(True, False) → False
new_lt21(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_@2, cbd), cbe)) → new_esEs6(zzz5001, zzz4001, cbd, cbe)
new_compare0([], [], bc) → EQ
new_pePe(True, zzz315) → True
new_compare15(zzz1900, zzz19700) → new_compare24(zzz1900, zzz19700, new_esEs9(zzz1900, zzz19700))
new_primEqNat0(Zero, Zero) → True
new_lt6(zzz1900, zzz19700, ty_Bool) → new_lt15(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Double) → new_ltEs17(zzz1901, zzz19701)
new_esEs20(zzz1900, zzz19700, ty_Int) → new_esEs11(zzz1900, zzz19700)
new_esEs26(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Ordering) → new_ltEs4(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(app(ty_Either, dce), dcf)) → new_lt16(zzz19010, zzz197010, dce, dcf)
new_esEs25(zzz5000, zzz4000, app(ty_[], ccb)) → new_esEs18(zzz5000, zzz4000, ccb)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_esEs12(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_lt19(zzz19011, zzz197011, ty_Ordering) → new_lt5(zzz19011, zzz197011)
new_esEs24(zzz5001, zzz4001, app(ty_[], cah)) → new_esEs18(zzz5001, zzz4001, cah)
new_ltEs5(True, True) → True
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Maybe, dd), de) → new_ltEs8(zzz19010, zzz197010, dd)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Ordering, cda) → new_esEs8(zzz5000, zzz4000)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Maybe, eh)) → new_ltEs8(zzz19010, zzz197010, eh)
new_esEs26(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(app(app(ty_@3, bbe), bbf), bbg)) → new_ltEs9(zzz1901, zzz19701, bbe, bbf, bbg)
new_esEs8(GT, GT) → True
new_compare5(zzz19000, zzz197000, ty_Float) → new_compare13(zzz19000, zzz197000)
new_esEs25(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(ty_Either, cfb), cfc)) → new_esEs7(zzz5000, zzz4000, cfb, cfc)
new_lt21(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_esEs22(zzz19010, zzz197010, app(ty_[], bgb)) → new_esEs18(zzz19010, zzz197010, bgb)
new_ltEs9(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), bbe, bbf, bbg) → new_pePe(new_lt20(zzz19010, zzz197010, bbe), new_asAs(new_esEs22(zzz19010, zzz197010, bbe), new_pePe(new_lt19(zzz19011, zzz197011, bbf), new_asAs(new_esEs21(zzz19011, zzz197011, bbf), new_ltEs19(zzz19012, zzz197012, bbg)))))
new_lt20(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs26(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Int) → new_ltEs15(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(ty_Ratio, dca)) → new_lt10(zzz19010, zzz197010, dca)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Integer) → new_ltEs11(zzz19011, zzz197011)
new_esEs20(zzz1900, zzz19700, ty_Ordering) → new_esEs8(zzz1900, zzz19700)
new_esEs23(zzz5002, zzz4002, ty_Ordering) → new_esEs8(zzz5002, zzz4002)
new_ltEs5(False, False) → True
new_ltEs18(zzz1901, zzz19701, app(app(ty_Either, eg), de)) → new_ltEs7(zzz1901, zzz19701, eg, de)
new_ltEs19(zzz19012, zzz197012, app(app(app(ty_@3, bdb), bdc), bdd)) → new_ltEs9(zzz19012, zzz197012, bdb, bdc, bdd)
new_ltEs20(zzz19011, zzz197011, app(app(app(ty_@3, dad), dae), daf)) → new_ltEs9(zzz19011, zzz197011, dad, dae, daf)
new_lt4(zzz1900, zzz19700) → new_esEs8(new_compare10(zzz1900, zzz19700), LT)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Bool, de) → new_ltEs5(zzz19010, zzz197010)
new_ltEs13(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), bca, bcb) → new_pePe(new_lt21(zzz19010, zzz197010, bca), new_asAs(new_esEs27(zzz19010, zzz197010, bca), new_ltEs20(zzz19011, zzz197011, bcb)))
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_[], beh)) → new_esEs18(zzz19011, zzz197011, beh)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Integer, cda) → new_esEs15(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Left(zzz197010), eg, de) → False
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_@2, cea), ceb), cda) → new_esEs6(zzz5000, zzz4000, cea, ceb)
new_ltEs19(zzz19012, zzz197012, ty_Ordering) → new_ltEs4(zzz19012, zzz197012)
new_primEqInt(Neg(Zero), Neg(Succ(zzz40000))) → False
new_primEqInt(Neg(Succ(zzz50000)), Neg(Zero)) → False
new_compare10(Integer(zzz19000), Integer(zzz197000)) → new_primCmpInt(zzz19000, zzz197000)
new_esEs8(EQ, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_Either, daa), dab)) → new_ltEs7(zzz19010, zzz197010, daa, dab)
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_compare19(zzz1900, zzz19700, False, cf, cg, da) → GT
new_esEs26(zzz5000, zzz4000, app(ty_[], cgc)) → new_esEs18(zzz5000, zzz4000, cgc)
new_esEs22(zzz19010, zzz197010, app(app(app(ty_@3, bff), bfg), bfh)) → new_esEs5(zzz19010, zzz197010, bff, bfg, bfh)
new_compare113(zzz286, zzz287, zzz288, zzz289, True, zzz291, db, dc) → new_compare110(zzz286, zzz287, zzz288, zzz289, True, db, dc)
new_esEs20(zzz1900, zzz19700, ty_@0) → new_esEs19(zzz1900, zzz19700)
new_esEs19(@0, @0) → True
new_esEs26(zzz5000, zzz4000, app(app(ty_Either, cge), cgf)) → new_esEs7(zzz5000, zzz4000, cge, cgf)
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Ordering) → new_ltEs4(zzz1901, zzz19701)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_ltEs4(EQ, LT) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_Either, ddf), ddg)) → new_esEs7(zzz5000, zzz4000, ddf, ddg)
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt19(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_lt16(zzz19011, zzz197011, bfc, bfd)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(app(ty_@2, cfd), cfe)) → new_esEs6(zzz5000, zzz4000, cfd, cfe)
new_esEs22(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_@0) → new_compare8(zzz19000, zzz197000)
new_esEs22(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_esEs4(zzz19010, zzz197010, bfe)
new_lt21(zzz19010, zzz197010, app(app(app(ty_@3, dbf), dbg), dbh)) → new_lt8(zzz19010, zzz197010, dbf, dbg, dbh)
new_esEs25(zzz5000, zzz4000, app(ty_Maybe, ccc)) → new_esEs4(zzz5000, zzz4000, ccc)
new_compare112(zzz1900, zzz19700, True) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Float, de) → new_ltEs14(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Bool) → new_ltEs5(zzz1901, zzz19701)
new_primEqInt(Pos(Succ(zzz50000)), Pos(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs12(zzz5001, zzz4001, app(app(app(ty_@3, gg), gh), ha)) → new_esEs5(zzz5001, zzz4001, gg, gh, ha)
new_compare27(zzz1900, zzz19700, True, bcg, bch) → EQ
new_lt19(zzz19011, zzz197011, app(app(ty_@2, bfa), bfb)) → new_lt12(zzz19011, zzz197011, bfa, bfb)
new_ltEs20(zzz19011, zzz197011, ty_Float) → new_ltEs14(zzz19011, zzz197011)
new_ltEs18(zzz1901, zzz19701, ty_@0) → new_ltEs10(zzz1901, zzz19701)
new_esEs23(zzz5002, zzz4002, ty_Char) → new_esEs17(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_primEqNat0(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat0(zzz50000, zzz40000)
new_esEs27(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_[], ceh)) → new_esEs18(zzz5000, zzz4000, ceh)
new_esEs23(zzz5002, zzz4002, app(ty_Ratio, bhb)) → new_esEs14(zzz5002, zzz4002, bhb)
new_esEs13(zzz5000, zzz4000, app(app(app(ty_@3, baa), bab), bac)) → new_esEs5(zzz5000, zzz4000, baa, bab, bac)
new_compare5(zzz19000, zzz197000, ty_Int) → new_compare14(zzz19000, zzz197000)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_esEs14(:%(zzz5000, zzz5001), :%(zzz4000, zzz4001), deb) → new_asAs(new_esEs29(zzz5000, zzz4000, deb), new_esEs28(zzz5001, zzz4001, deb))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, dda), ddb), ddc)) → new_esEs5(zzz5000, zzz4000, dda, ddb, ddc)
new_ltEs20(zzz19011, zzz197011, ty_Char) → new_ltEs16(zzz19011, zzz197011)
new_esEs22(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_lt10(zzz1900, zzz19700, bcd) → new_esEs8(new_compare11(zzz1900, zzz19700, bcd), LT)
new_ltEs4(GT, EQ) → False
new_primCompAux00(zzz323, LT) → LT
new_esEs25(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_lt6(zzz1900, zzz19700, ty_Integer) → new_lt4(zzz1900, zzz19700)
new_esEs28(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_compare114(zzz1900, zzz19700, True, bcg, bch) → LT
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Int, de) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(app(ty_Either, bea), beb)) → new_ltEs7(zzz19012, zzz197012, bea, beb)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_Ratio, ced)) → new_esEs14(zzz5000, zzz4000, ced)
new_ltEs8(Just(zzz19010), Nothing, bbd) → False
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs27(zzz19010, zzz197010, app(app(app(ty_@3, dbf), dbg), dbh)) → new_esEs5(zzz19010, zzz197010, dbf, dbg, dbh)
new_esEs21(zzz19011, zzz197011, ty_Int) → new_esEs11(zzz19011, zzz197011)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Succ(zzz50000)), Pos(Zero)) → False
new_esEs27(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_ltEs4(EQ, EQ) → True
new_ltEs18(zzz1901, zzz19701, ty_Integer) → new_ltEs11(zzz1901, zzz19701)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Ratio, che)) → new_ltEs6(zzz19010, zzz197010, che)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_ltEs4(GT, LT) → False
new_sr0(Integer(zzz1970000), Integer(zzz190010)) → Integer(new_primMulInt(zzz1970000, zzz190010))
new_compare30(zzz190, zzz191, zzz197, h, ba) → new_compare25(@2(zzz190, zzz191), zzz197, new_esEs6(@2(zzz190, zzz191), zzz197, h, ba), h, ba)
new_primEqInt(Neg(Succ(zzz50000)), Pos(zzz4000)) → False
new_primEqInt(Pos(Succ(zzz50000)), Neg(zzz4000)) → False
new_compare24(zzz1900, zzz19700, False) → new_compare111(zzz1900, zzz19700, new_ltEs5(zzz1900, zzz19700))
new_ltEs5(False, True) → True
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_@2, ddh), dea)) → new_esEs6(zzz5000, zzz4000, ddh, dea)
new_lt16(zzz1900, zzz19700, bcg, bch) → new_esEs8(new_compare16(zzz1900, zzz19700, bcg, bch), LT)
new_esEs22(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_esEs6(zzz19010, zzz197010, bgc, bgd)
new_compare7(zzz1900, zzz19700, cf, cg, da) → new_compare26(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, cf, cg, da), cf, cg, da)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Ordering, de) → new_ltEs4(zzz19010, zzz197010)
new_compare9(zzz1900, zzz19700) → new_compare28(zzz1900, zzz19700, new_esEs8(zzz1900, zzz19700))
new_primEqInt(Neg(Zero), Pos(Succ(zzz40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz40000))) → False
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Char, de) → new_ltEs16(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Integer) → new_esEs15(zzz19011, zzz197011)
new_esEs18(:(zzz5000, zzz5001), :(zzz4000, zzz4001), cff) → new_asAs(new_esEs26(zzz5000, zzz4000, cff), new_esEs18(zzz5001, zzz4001, cff))
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCompAux00(zzz323, EQ) → zzz323
new_esEs7(Right(zzz5000), Right(zzz4000), cec, app(ty_Maybe, cfa)) → new_esEs4(zzz5000, zzz4000, cfa)
new_compare24(zzz1900, zzz19700, True) → EQ
new_lt21(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_esEs13(zzz5000, zzz4000, app(ty_[], bad)) → new_esEs18(zzz5000, zzz4000, bad)
new_lt17(zzz1900, zzz19700) → new_esEs8(new_compare17(zzz1900, zzz19700), LT)
new_esEs26(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Double) → new_esEs10(zzz19011, zzz197011)
new_ltEs19(zzz19012, zzz197012, app(app(ty_@2, bdg), bdh)) → new_ltEs13(zzz19012, zzz197012, bdg, bdh)
new_compare13(Float(zzz19000, zzz19001), Float(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_not(False) → True
new_compare114(zzz1900, zzz19700, False, bcg, bch) → GT
new_esEs11(zzz500, zzz400) → new_primEqInt(zzz500, zzz400)
new_compare5(zzz19000, zzz197000, app(app(ty_@2, cb), cc)) → new_compare12(zzz19000, zzz197000, cb, cc)
new_lt20(zzz19010, zzz197010, app(ty_[], bgb)) → new_lt11(zzz19010, zzz197010, bgb)
new_esEs13(zzz5000, zzz4000, app(app(ty_Either, baf), bag)) → new_esEs7(zzz5000, zzz4000, baf, bag)
new_ltEs17(zzz1901, zzz19701) → new_not(new_esEs8(new_compare18(zzz1901, zzz19701), GT))
new_lt20(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_esEs26(zzz5000, zzz4000, app(ty_Ratio, cfg)) → new_esEs14(zzz5000, zzz4000, cfg)
new_esEs23(zzz5002, zzz4002, app(app(ty_@2, cab), cac)) → new_esEs6(zzz5002, zzz4002, cab, cac)
new_esEs13(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs25(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_ltEs19(zzz19012, zzz197012, app(ty_[], bdf)) → new_ltEs12(zzz19012, zzz197012, bdf)
new_lt6(zzz1900, zzz19700, app(ty_[], bc)) → new_lt11(zzz1900, zzz19700, bc)
new_lt20(zzz19010, zzz197010, app(app(ty_Either, bge), bgf)) → new_lt16(zzz19010, zzz197010, bge, bgf)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_[], ff)) → new_ltEs12(zzz19010, zzz197010, ff)
new_compare0(:(zzz19000, zzz19001), [], bc) → GT
new_lt21(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_compare28(zzz1900, zzz19700, True) → EQ
new_lt19(zzz19011, zzz197011, ty_Integer) → new_lt4(zzz19011, zzz197011)
new_esEs27(zzz19010, zzz197010, app(ty_[], dcb)) → new_esEs18(zzz19010, zzz197010, dcb)
new_esEs9(True, True) → True
new_esEs27(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(app(app(ty_@3, cf), cg), da)) → new_esEs5(zzz1900, zzz19700, cf, cg, da)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs21(zzz19011, zzz197011, app(app(app(ty_@3, bed), bee), bef)) → new_esEs5(zzz19011, zzz197011, bed, bee, bef)
new_lt19(zzz19011, zzz197011, ty_Char) → new_lt17(zzz19011, zzz197011)
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Integer) → new_compare10(new_sr0(zzz19000, zzz197001), new_sr0(zzz197000, zzz19001))
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Ratio, cch), cda) → new_esEs14(zzz5000, zzz4000, cch)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs27(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(ty_Maybe, bda)) → new_ltEs8(zzz19012, zzz197012, bda)
new_esEs27(zzz19010, zzz197010, app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz19010, zzz197010, dcc, dcd)
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_ltEs19(zzz19012, zzz197012, app(ty_Ratio, bde)) → new_ltEs6(zzz19012, zzz197012, bde)
new_esEs20(zzz1900, zzz19700, ty_Integer) → new_esEs15(zzz1900, zzz19700)
new_lt9(zzz1900, zzz19700) → new_esEs8(new_compare8(zzz1900, zzz19700), LT)
new_primEqNat0(Succ(zzz50000), Zero) → False
new_primEqNat0(Zero, Succ(zzz40000)) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, app(app(ty_@2, bgc), bgd)) → new_lt12(zzz19010, zzz197010, bgc, bgd)
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_Either, ee), ef), de) → new_ltEs7(zzz19010, zzz197010, ee, ef)
new_compare25(zzz190, zzz1970, True, bbb, bbc) → EQ
new_esEs24(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs4(Nothing, Nothing, dcg) → True
new_lt19(zzz19011, zzz197011, app(ty_[], beh)) → new_lt11(zzz19011, zzz197011, beh)
new_ltEs6(zzz1901, zzz19701, gc) → new_not(new_esEs8(new_compare11(zzz1901, zzz19701, gc), GT))
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Char, cda) → new_esEs17(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Bool) → new_esEs9(zzz19011, zzz197011)
new_esEs12(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_esEs23(zzz5002, zzz4002, ty_Int) → new_esEs11(zzz5002, zzz4002)
new_lt20(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, ty_Ordering) → new_lt5(zzz1900, zzz19700)
new_esEs27(zzz19010, zzz197010, app(ty_Maybe, dbe)) → new_esEs4(zzz19010, zzz197010, dbe)
new_esEs21(zzz19011, zzz197011, app(app(ty_Either, bfc), bfd)) → new_esEs7(zzz19011, zzz197011, bfc, bfd)
new_ltEs20(zzz19011, zzz197011, ty_Double) → new_ltEs17(zzz19011, zzz197011)
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_ltEs4(LT, GT) → True
new_lt15(zzz1900, zzz19700) → new_esEs8(new_compare15(zzz1900, zzz19700), LT)
new_lt21(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_lt20(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Char) → new_esEs17(zzz19011, zzz197011)
new_ltEs12(zzz1901, zzz19701, bbh) → new_not(new_esEs8(new_compare0(zzz1901, zzz19701, bbh), GT))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs20(zzz1900, zzz19700, ty_Bool) → new_esEs9(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_esEs25(zzz5000, zzz4000, app(ty_Ratio, cbf)) → new_esEs14(zzz5000, zzz4000, cbf)
new_lt20(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Float) → new_ltEs14(zzz1901, zzz19701)
new_compare5(zzz19000, zzz197000, ty_Integer) → new_compare10(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, app(app(ty_@2, bah), bba)) → new_esEs6(zzz5000, zzz4000, bah, bba)
new_lt6(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_lt16(zzz1900, zzz19700, bcg, bch)
new_esEs24(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, app(app(ty_Either, hd), he)) → new_esEs7(zzz5001, zzz4001, hd, he)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Integer, de) → new_ltEs11(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Integer) → new_ltEs11(zzz19012, zzz197012)
new_esEs25(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_Maybe, bec)) → new_esEs4(zzz19011, zzz197011, bec)
new_esEs9(False, True) → False
new_esEs9(True, False) → False
new_esEs20(zzz1900, zzz19700, app(app(ty_Either, bcg), bch)) → new_esEs7(zzz1900, zzz19700, bcg, bch)
new_esEs27(zzz19010, zzz197010, app(ty_Ratio, dca)) → new_esEs14(zzz19010, zzz197010, dca)
new_compare29(zzz1900, zzz19700, True, bcc) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_ltEs4(LT, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Maybe, cha)) → new_ltEs8(zzz19010, zzz197010, cha)
new_lt20(zzz19010, zzz197010, app(ty_Maybe, bfe)) → new_lt7(zzz19010, zzz197010, bfe)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(ty_Either, ga), gb)) → new_ltEs7(zzz19010, zzz197010, ga, gb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, app(ty_Maybe, hc)) → new_esEs4(zzz5001, zzz4001, hc)
new_asAs(False, zzz239) → False
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Int) → new_compare14(new_sr(zzz19000, zzz197001), new_sr(zzz197000, zzz19001))
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, app(ty_Ratio, hh)) → new_esEs14(zzz5000, zzz4000, hh)
new_compare12(zzz1900, zzz19700, bce, bcf) → new_compare25(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, bce, bcf), bce, bcf)
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, ty_Float) → new_ltEs14(zzz19012, zzz197012)
new_esEs18([], [], cff) → True
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Ordering) → new_esEs8(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_[], ddd)) → new_esEs18(zzz5000, zzz4000, ddd)
new_lt19(zzz19011, zzz197011, ty_Double) → new_lt18(zzz19011, zzz197011)
new_esEs29(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, ty_Char) → new_ltEs16(zzz19012, zzz197012)
new_ltEs19(zzz19012, zzz197012, ty_@0) → new_ltEs10(zzz19012, zzz197012)
new_esEs20(zzz1900, zzz19700, ty_Float) → new_esEs16(zzz1900, zzz19700)
new_lt11(zzz1900, zzz19700, bc) → new_esEs8(new_compare0(zzz1900, zzz19700, bc), LT)
new_lt13(zzz1900, zzz19700) → new_esEs8(new_compare13(zzz1900, zzz19700), LT)
new_esEs28(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_lt20(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare110(zzz286, zzz287, zzz288, zzz289, False, db, dc) → GT
new_esEs5(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), bgg, bgh, bha) → new_asAs(new_esEs25(zzz5000, zzz4000, bgg), new_asAs(new_esEs24(zzz5001, zzz4001, bgh), new_esEs23(zzz5002, zzz4002, bha)))
new_ltEs18(zzz1901, zzz19701, app(app(ty_@2, bca), bcb)) → new_ltEs13(zzz1901, zzz19701, bca, bcb)
new_esEs26(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, ty_Integer) → new_esEs15(zzz5002, zzz4002)
new_lt19(zzz19011, zzz197011, ty_Bool) → new_lt15(zzz19011, zzz197011)
new_compare5(zzz19000, zzz197000, ty_Bool) → new_compare15(zzz19000, zzz197000)
new_esEs9(False, False) → True
new_ltEs19(zzz19012, zzz197012, ty_Bool) → new_ltEs5(zzz19012, zzz197012)
new_esEs22(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, app(ty_Maybe, bd)) → new_compare6(zzz19000, zzz197000, bd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_@2, ec), ed), de) → new_ltEs13(zzz19010, zzz197010, ec, ed)
new_ltEs20(zzz19011, zzz197011, app(app(ty_Either, dbc), dbd)) → new_ltEs7(zzz19011, zzz197011, dbc, dbd)
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(app(app(ty_@3, fa), fb), fc)) → new_ltEs9(zzz19010, zzz197010, fa, fb, fc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_[], eb), de) → new_ltEs12(zzz19010, zzz197010, eb)
new_esEs7(Right(zzz5000), Right(zzz4000), cec, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(ty_Maybe, bbd)) → new_ltEs8(zzz1901, zzz19701, bbd)
new_ltEs4(LT, LT) → True
new_ltEs19(zzz19012, zzz197012, ty_Int) → new_ltEs15(zzz19012, zzz197012)
new_ltEs8(Nothing, Nothing, bbd) → True
new_ltEs10(zzz1901, zzz19701) → new_not(new_esEs8(new_compare8(zzz1901, zzz19701), GT))
new_esEs23(zzz5002, zzz4002, ty_Double) → new_esEs10(zzz5002, zzz4002)
new_esEs25(zzz5000, zzz4000, app(app(app(ty_@3, cbg), cbh), cca)) → new_esEs5(zzz5000, zzz4000, cbg, cbh, cca)
new_ltEs20(zzz19011, zzz197011, app(ty_Ratio, dag)) → new_ltEs6(zzz19011, zzz197011, dag)
new_lt5(zzz1900, zzz19700) → new_esEs8(new_compare9(zzz1900, zzz19700), LT)
new_compare112(zzz1900, zzz19700, False) → GT
new_esEs12(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_lt12(zzz1900, zzz19700, bce, bcf) → new_esEs8(new_compare12(zzz1900, zzz19700, bce, bcf), LT)
new_esEs12(zzz5001, zzz4001, app(ty_Ratio, gf)) → new_esEs14(zzz5001, zzz4001, gf)
new_compare5(zzz19000, zzz197000, ty_Ordering) → new_compare9(zzz19000, zzz197000)
new_lt6(zzz1900, zzz19700, ty_Float) → new_lt13(zzz1900, zzz19700)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_compare5(zzz19000, zzz197000, app(app(app(ty_@3, be), bf), bg)) → new_compare7(zzz19000, zzz197000, be, bf, bg)
new_esEs20(zzz1900, zzz19700, ty_Char) → new_esEs17(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_compare26(zzz1900, zzz19700, True, cf, cg, da) → EQ
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_esEs22(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, app(ty_Maybe, bcc)) → new_lt7(zzz1900, zzz19700, bcc)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_@2, chg), chh)) → new_ltEs13(zzz19010, zzz197010, chg, chh)
new_lt6(zzz1900, zzz19700, ty_Int) → new_lt14(zzz1900, zzz19700)
new_compare0([], :(zzz197000, zzz197001), bc) → LT
new_esEs12(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs13(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_asAs(True, zzz239) → zzz239
new_esEs25(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_@0, cda) → new_esEs19(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(app(app(ty_@3, cfh), cga), cgb)) → new_esEs5(zzz5000, zzz4000, cfh, cga, cgb)
new_esEs27(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Double) → new_compare18(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt20(zzz19010, zzz197010, app(ty_Ratio, bga)) → new_lt10(zzz19010, zzz197010, bga)
new_lt6(zzz1900, zzz19700, ty_Char) → new_lt17(zzz1900, zzz19700)
new_lt19(zzz19011, zzz197011, ty_@0) → new_lt9(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare8(@0, @0) → EQ
new_ltEs11(zzz1901, zzz19701) → new_not(new_esEs8(new_compare10(zzz1901, zzz19701), GT))
new_esEs26(zzz5000, zzz4000, app(app(ty_@2, cgg), cgh)) → new_esEs6(zzz5000, zzz4000, cgg, cgh)
new_lt20(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_primCompAux0(zzz19000, zzz197000, zzz316, bc) → new_primCompAux00(zzz316, new_compare5(zzz19000, zzz197000, bc))
new_esEs23(zzz5002, zzz4002, app(app(app(ty_@3, bhc), bhd), bhe)) → new_esEs5(zzz5002, zzz4002, bhc, bhd, bhe)
new_ltEs18(zzz1901, zzz19701, app(ty_[], bbh)) → new_ltEs12(zzz1901, zzz19701, bbh)
new_ltEs20(zzz19011, zzz197011, app(app(ty_@2, dba), dbb)) → new_ltEs13(zzz19011, zzz197011, dba, dbb)
new_compare5(zzz19000, zzz197000, app(app(ty_Either, cd), ce)) → new_compare16(zzz19000, zzz197000, cd, ce)
new_lt18(zzz1900, zzz19700) → new_esEs8(new_compare18(zzz1900, zzz19700), LT)
new_compare28(zzz1900, zzz19700, False) → new_compare112(zzz1900, zzz19700, new_ltEs4(zzz1900, zzz19700))
new_lt21(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_ltEs4(GT, GT) → True
new_ltEs7(Right(zzz19010), Right(zzz197010), eg, app(ty_Ratio, fd)) → new_ltEs6(zzz19010, zzz197010, fd)
new_esEs23(zzz5002, zzz4002, app(ty_[], bhf)) → new_esEs18(zzz5002, zzz4002, bhf)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_[], chf)) → new_ltEs12(zzz19010, zzz197010, chf)
new_esEs20(zzz1900, zzz19700, ty_Double) → new_esEs10(zzz1900, zzz19700)
new_primCompAux00(zzz323, GT) → GT
new_esEs25(zzz5000, zzz4000, app(app(ty_Either, ccd), cce)) → new_esEs7(zzz5000, zzz4000, ccd, cce)
new_compare6(zzz1900, zzz19700, bcc) → new_compare29(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, bcc), bcc)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Float, cda) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Float) → new_esEs16(zzz19011, zzz197011)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_lt6(zzz1900, zzz19700, app(app(ty_@2, bce), bcf)) → new_lt12(zzz1900, zzz19700, bce, bcf)
new_lt19(zzz19011, zzz197011, ty_Int) → new_lt14(zzz19011, zzz197011)
new_esEs10(Double(zzz5000, zzz5001), Double(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Double, de) → new_ltEs17(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Int) → new_ltEs15(zzz1901, zzz19701)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_esEs27(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, app(app(ty_@2, hf), hg)) → new_esEs6(zzz5001, zzz4001, hf, hg)
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_not(True) → False
new_compare5(zzz19000, zzz197000, app(ty_[], ca)) → new_compare0(zzz19000, zzz197000, ca)

The set Q consists of the following terms:

new_lt6(x0, x1, ty_Float)
new_compare25(@2(x0, x1), @2(x2, x3), False, x4, x5)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, ty_Integer)
new_compare5(x0, x1, app(ty_Ratio, x2))
new_lt16(x0, x1, x2, x3)
new_esEs13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_gt0(x0, x1, x2, x3, x4)
new_ltEs6(x0, x1, x2)
new_lt6(x0, x1, ty_@0)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_asAs(True, x0)
new_compare13(Float(x0, x1), Float(x2, x3))
new_compare30(x0, x1, x2, x3, x4)
new_esEs23(x0, x1, ty_@0)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Nothing, Just(x0), x1)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpNat0(Succ(x0), Zero)
new_ltEs18(x0, x1, ty_Ordering)
new_compare5(x0, x1, ty_Float)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare0([], :(x0, x1), x2)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, ty_Ordering)
new_esEs27(x0, x1, app(ty_[], x2))
new_lt6(x0, x1, ty_Integer)
new_esEs12(x0, x1, ty_Char)
new_esEs13(x0, x1, ty_Int)
new_lt19(x0, x1, app(ty_[], x2))
new_compare0([], [], x0)
new_esEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs29(x0, x1, ty_Int)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Ordering)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_lt20(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Char)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Integer)
new_esEs12(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs12(x0, x1, ty_@0)
new_ltEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs29(x0, x1, ty_Integer)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(GT, GT)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_esEs21(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Float)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_compare26(x0, x1, False, x2, x3, x4)
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_compare29(x0, x1, False, x2)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Nothing, x1)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux00(x0, LT)
new_ltEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt6(x0, x1, ty_Bool)
new_lt10(x0, x1, x2)
new_esEs8(LT, LT)
new_esEs18([], [], x0)
new_esEs27(x0, x1, ty_Double)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs21(x0, x1, ty_Char)
new_ltEs18(x0, x1, ty_Bool)
new_ltEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs20(x0, x1, ty_Float)
new_ltEs5(False, False)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_compare8(@0, @0)
new_esEs26(x0, x1, ty_Int)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Integer)
new_compare115(x0, x1, True, x2)
new_esEs21(x0, x1, ty_@0)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_ltEs20(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_compare16(x0, x1, x2, x3)
new_esEs18([], :(x0, x1), x2)
new_esEs26(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Float)
new_esEs27(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt20(x0, x1, ty_Bool)
new_esEs4(Nothing, Nothing, x0)
new_lt21(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare113(x0, x1, x2, x3, False, x4, x5, x6)
new_ltEs16(x0, x1)
new_ltEs8(Nothing, Just(x0), x1)
new_primCompAux0(x0, x1, x2, x3)
new_lt11(x0, x1, x2)
new_ltEs18(x0, x1, ty_Integer)
new_compare114(x0, x1, False, x2, x3)
new_primEqNat0(Zero, Zero)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs12(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(True, True)
new_esEs21(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, ty_Int)
new_lt20(x0, x1, ty_@0)
new_lt21(x0, x1, app(ty_[], x2))
new_esEs13(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Double)
new_lt4(x0, x1)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Integer)
new_lt6(x0, x1, ty_Int)
new_primMulNat0(Zero, Zero)
new_ltEs19(x0, x1, ty_Int)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_primCompAux00(x0, GT)
new_compare9(x0, x1)
new_ltEs7(Right(x0), Left(x1), x2, x3)
new_ltEs7(Left(x0), Right(x1), x2, x3)
new_ltEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_lt19(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_compare110(x0, x1, x2, x3, True, x4, x5)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs17(x0, x1)
new_esEs23(x0, x1, ty_Float)
new_compare5(x0, x1, ty_Double)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(GT, GT)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_pePe(False, x0)
new_compare24(x0, x1, False)
new_compare5(x0, x1, ty_Ordering)
new_compare27(x0, x1, True, x2, x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Int)
new_lt13(x0, x1)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Double)
new_compare17(Char(x0), Char(x1))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs12(x0, x1, ty_Float)
new_esEs13(x0, x1, ty_Double)
new_compare19(x0, x1, True, x2, x3, x4)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_lt5(x0, x1)
new_esEs13(x0, x1, ty_Char)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs12(x0, x1, ty_Double)
new_compare10(Integer(x0), Integer(x1))
new_esEs26(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs26(x0, x1, ty_@0)
new_esEs14(:%(x0, x1), :%(x2, x3), x4)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primMulNat0(Succ(x0), Zero)
new_compare5(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare110(x0, x1, x2, x3, False, x4, x5)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare114(x0, x1, True, x2, x3)
new_primMulNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Char)
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs20(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Ordering)
new_lt6(x0, x1, ty_Ordering)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Integer)
new_primPlusNat0(Zero, Zero)
new_lt19(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_ltEs19(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, app(ty_Maybe, x2))
new_esEs13(x0, x1, app(ty_Ratio, x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Bool)
new_compare14(x0, x1)
new_esEs26(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs23(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Float)
new_ltEs13(@2(x0, x1), @2(x2, x3), x4, x5)
new_compare112(x0, x1, True)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs24(x0, x1, ty_@0)
new_ltEs18(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Float)
new_compare0(:(x0, x1), [], x2)
new_esEs12(x0, x1, ty_Int)
new_compare5(x0, x1, ty_Int)
new_compare29(x0, x1, True, x2)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Float)
new_ltEs4(EQ, EQ)
new_esEs18(:(x0, x1), [], x2)
new_ltEs8(Nothing, Nothing, x0)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Float)
new_compare18(Double(x0, x1), Double(x2, x3))
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_compare5(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Double)
new_lt6(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Double)
new_ltEs4(LT, EQ)
new_lt21(x0, x1, ty_Double)
new_ltEs4(EQ, LT)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_sr0(Integer(x0), Integer(x1))
new_pePe(True, x0)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs12(x0, x1, x2)
new_ltEs20(x0, x1, ty_Double)
new_lt17(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_primPlusNat1(Zero, x0)
new_esEs22(x0, x1, ty_@0)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs18(:(x0, x1), :(x2, x3), x4)
new_compare111(x0, x1, True)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs20(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare5(x0, x1, ty_@0)
new_compare113(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs27(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), x1)
new_ltEs14(x0, x1)
new_primEqNat0(Succ(x0), Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs12(x0, x1, ty_Ordering)
new_ltEs7(Left(x0), Left(x1), ty_Double, x2)
new_ltEs18(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_lt6(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs21(x0, x1, ty_Bool)
new_asAs(False, x0)
new_compare25(x0, x1, True, x2, x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, ty_Double)
new_primEqInt(Neg(Zero), Neg(Zero))
new_lt21(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_ltEs10(x0, x1)
new_esEs15(Integer(x0), Integer(x1))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_ltEs11(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs21(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_primPlusNat0(Zero, Succ(x0))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs13(x0, x1, ty_Ordering)
new_esEs12(x0, x1, ty_Integer)
new_ltEs4(LT, LT)
new_esEs12(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare115(x0, x1, False, x2)
new_esEs24(x0, x1, ty_Ordering)
new_compare5(x0, x1, app(ty_[], x2))
new_ltEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare7(x0, x1, x2, x3, x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Float)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Bool)
new_esEs20(x0, x1, ty_Float)
new_ltEs8(Just(x0), Nothing, x1)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_esEs25(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_primMulInt(Pos(x0), Pos(x1))
new_lt20(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_ltEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_lt21(x0, x1, ty_@0)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt19(x0, x1, ty_Char)
new_esEs13(x0, x1, app(ty_[], x2))
new_lt8(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Bool)
new_ltEs15(x0, x1)
new_esEs12(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs25(x0, x1, ty_Int)
new_ltEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs24(x0, x1, ty_Double)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, ty_Integer)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, ty_Bool)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, False)
new_ltEs20(x0, x1, ty_Bool)
new_esEs9(False, False)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs26(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs27(x0, x1, ty_@0)
new_esEs13(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_Int)
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_compare27(x0, x1, False, x2, x3)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_esEs25(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, ty_Integer)
new_ltEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare15(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_lt12(x0, x1, x2, x3)
new_esEs13(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_compare111(x0, x1, False)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs13(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(True, True)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs17(Char(x0), Char(x1))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(EQ, GT)
new_ltEs4(GT, EQ)
new_esEs13(x0, x1, ty_@0)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Int)
new_not(True)
new_esEs22(x0, x1, ty_Ordering)
new_esEs27(x0, x1, ty_Ordering)
new_esEs10(Double(x0, x1), Double(x2, x3))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_compare6(x0, x1, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs11(x0, x1)
new_esEs27(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_primPlusNat0(Succ(x0), Zero)
new_ltEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Bool)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_lt14(x0, x1)
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs25(x0, x1, ty_Char)
new_ltEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs20(x0, x1, app(ty_[], x2))
new_compare24(x0, x1, True)
new_esEs22(x0, x1, ty_Int)
new_esEs13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs9(False, True)
new_esEs9(True, False)
new_lt19(x0, x1, ty_Integer)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs25(x0, x1, ty_@0)
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_lt18(x0, x1)
new_lt7(x0, x1, x2)
new_esEs24(x0, x1, ty_Bool)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_primCmpNat0(Zero, Succ(x0))
new_ltEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_lt6(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_@0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Float)
new_compare26(x0, x1, True, x2, x3, x4)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, ty_Char)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, app(ty_Maybe, x2))
new_compare28(x0, x1, True)
new_esEs20(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs20(x0, x1, ty_Ordering)
new_compare12(x0, x1, x2, x3)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux00(x0, EQ)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs19(@0, @0)
new_ltEs4(GT, LT)
new_ltEs4(LT, GT)
new_ltEs5(True, False)
new_compare19(x0, x1, False, x2, x3, x4)
new_ltEs5(False, True)
new_ltEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt9(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primEqNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_esEs12(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs20(x0, x1, ty_@0)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_compare28(x0, x1, False)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

new_intersectFM_C2IntersectFM_C1(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, zzz200, zzz201, False, h, ba, bb, bc, bd, be) → new_intersectFM_C2IntersectFM_C10(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, zzz200, zzz201, new_gt0(zzz190, zzz191, zzz197, h, ba), h, ba, bb, bc, bd, be)
new_intersectFM_C2IntersectFM_C10(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, zzz200, zzz201, False, h, ba, bb, bc, bd, be) → new_intersectFM_C(zzz192, new_intersectFM_C2Lts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd), zzz195, h, ba, bb, bc, bd)
new_intersectFM_C2IntersectFM_C11(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, EmptyFM, h, ba, bb, bc, bd, be) → new_intersectFM_C(zzz192, new_intersectFM_C2Gts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd), zzz196, h, ba, bb, bc, bd)
new_intersectFM_C2IntersectFM_C11(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, EmptyFM, h, ba, bb, bc, bd, be) → new_intersectFM_C(zzz192, new_intersectFM_C2Lts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd), zzz195, h, ba, bb, bc, bd)
new_intersectFM_C2IntersectFM_C10(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, zzz200, zzz201, False, h, ba, bb, bc, bd, be) → new_intersectFM_C(zzz192, new_intersectFM_C2Gts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd), zzz196, h, ba, bb, bc, bd)
new_intersectFM_C2IntersectFM_C11(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, Branch(zzz2000, zzz2001, zzz2002, zzz2003, zzz2004), h, ba, bb, bc, bd, be) → new_intersectFM_C2IntersectFM_C1(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz2000, zzz2001, zzz2002, zzz2003, zzz2004, new_lt23(zzz190, zzz191, zzz2000, h, ba), h, ba, bb, bc, bd, be)
new_intersectFM_C(zzz3, Branch(@2(zzz400, zzz401), zzz41, zzz42, zzz43, zzz44), Branch(@2(zzz500, zzz501), zzz51, zzz52, zzz53, zzz54), bf, bg, bh, ca, cb) → new_intersectFM_C2IntersectFM_C1(zzz400, zzz401, zzz41, zzz42, zzz43, zzz44, zzz500, zzz501, zzz3, zzz51, zzz52, zzz53, zzz54, @2(zzz400, zzz401), zzz41, zzz42, zzz43, zzz44, new_esEs30(zzz500, zzz501, zzz400, zzz401, new_esEs31(zzz500, zzz400, bf), bf, bg), bf, bg, bh, ca, cb, cb)
new_intersectFM_C2IntersectFM_C1(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, EmptyFM, zzz201, True, h, ba, bb, bc, bd, be) → new_intersectFM_C(zzz192, new_intersectFM_C2Lts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd), zzz195, h, ba, bb, bc, bd)
new_intersectFM_C2IntersectFM_C1(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, EmptyFM, zzz201, True, h, ba, bb, bc, bd, be) → new_intersectFM_C(zzz192, new_intersectFM_C2Gts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd), zzz196, h, ba, bb, bc, bd)
new_intersectFM_C2IntersectFM_C1(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, Branch(zzz2000, zzz2001, zzz2002, zzz2003, zzz2004), zzz201, True, h, ba, bb, bc, bd, be) → new_intersectFM_C2IntersectFM_C1(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz2000, zzz2001, zzz2002, zzz2003, zzz2004, new_lt23(zzz190, zzz191, zzz2000, h, ba), h, ba, bb, bc, bd, be)
new_intersectFM_C2IntersectFM_C10(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz197, zzz198, zzz199, zzz200, zzz201, True, h, ba, bb, bc, bd, be) → new_intersectFM_C2IntersectFM_C11(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, zzz192, zzz193, zzz194, zzz195, zzz196, zzz201, h, ba, bb, bc, bd, be)

The TRS R consists of the following rules:

new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Maybe, bdb)) → new_esEs4(zzz5000, zzz4000, bdb)
new_esEs23(zzz5002, zzz4002, app(app(ty_Either, cgf), cgg)) → new_esEs7(zzz5002, zzz4002, cgf, cgg)
new_lt7(zzz1900, zzz19700, baf) → new_esEs8(new_compare6(zzz1900, zzz19700, baf), LT)
new_lt21(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_compare17(Char(zzz19000), Char(zzz197000)) → new_primCmpNat0(zzz19000, zzz197000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_Either, ge), gf), fg) → new_esEs7(zzz5000, zzz4000, ge, gf)
new_ltEs14(zzz1901, zzz19701) → new_not(new_esEs8(new_compare13(zzz1901, zzz19701), GT))
new_esEs21(zzz19011, zzz197011, app(app(ty_@2, cdg), cdh)) → new_esEs6(zzz19011, zzz197011, cdg, cdh)
new_lt19(zzz19011, zzz197011, app(ty_Ratio, cde)) → new_lt10(zzz19011, zzz197011, cde)
new_mkBalBranch6MkBalBranch01(zzz2410, zzz2411, zzz24140, zzz24141, zzz24142, Branch(zzz241430, zzz241431, zzz241432, zzz241433, zzz241434), zzz24144, zzz297, False, h, ba, bb) → new_mkBranch(Succ(Succ(Succ(Succ(Zero)))), zzz241430, zzz241431, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Zero))))), zzz2410, zzz2411, zzz297, zzz241433, app(app(ty_@2, h), ba), bb), new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz24140, zzz24141, zzz241434, zzz24144, app(app(ty_@2, h), ba), bb), app(app(ty_@2, h), ba), bb)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_ltEs4(EQ, GT) → True
new_esEs24(zzz5001, zzz4001, app(app(app(ty_@3, chc), chd), che)) → new_esEs5(zzz5001, zzz4001, chc, chd, che)
new_lt19(zzz19011, zzz197011, app(app(app(ty_@3, cdb), cdc), cdd)) → new_lt8(zzz19011, zzz197011, cdb, cdc, cdd)
new_compare110(zzz286, zzz287, zzz288, zzz289, True, bfd, bfe) → LT
new_compare26(zzz1900, zzz19700, False, cc, cd, ce) → new_compare19(zzz1900, zzz19700, new_ltEs9(zzz1900, zzz19700, cc, cd, ce), cc, cd, ce)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs17(Char(zzz5000), Char(zzz4000)) → new_primEqNat0(zzz5000, zzz4000)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_@0, cg) → new_ltEs10(zzz19010, zzz197010)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Maybe, gd), fg) → new_esEs4(zzz5000, zzz4000, gd)
new_esEs24(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_esEs31(zzz500, zzz400, ty_Ordering) → new_esEs8(zzz500, zzz400)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Double, fg) → new_esEs10(zzz5000, zzz4000)
new_compare25(@2(zzz1900, zzz1901), @2(zzz19700, zzz19701), False, cae, caf) → new_compare113(zzz1900, zzz1901, zzz19700, zzz19701, new_lt6(zzz1900, zzz19700, cae), new_asAs(new_esEs20(zzz1900, zzz19700, cae), new_ltEs18(zzz1901, zzz19701, caf)), cae, caf)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Ratio, dd), cg) → new_ltEs6(zzz19010, zzz197010, dd)
new_esEs4(Nothing, Just(zzz4000), bcd) → False
new_esEs4(Just(zzz5000), Nothing, bcd) → False
new_esEs24(zzz5001, zzz4001, app(ty_Maybe, chg)) → new_esEs4(zzz5001, zzz4001, chg)
new_esEs21(zzz19011, zzz197011, ty_@0) → new_esEs19(zzz19011, zzz197011)
new_lt20(zzz19010, zzz197010, app(app(app(ty_@3, ced), cee), cef)) → new_lt8(zzz19010, zzz197010, ced, cee, cef)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_Ratio, bce)) → new_esEs14(zzz5000, zzz4000, bce)
new_esEs12(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_lt21(zzz19010, zzz197010, app(ty_Maybe, dec)) → new_lt7(zzz19010, zzz197010, dec)
new_esEs25(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_compare27(zzz1900, zzz19700, False, bad, bae) → new_compare114(zzz1900, zzz19700, new_ltEs7(zzz1900, zzz19700, bad, bae), bad, bae)
new_esEs31(zzz500, zzz400, app(app(app(ty_@3, cfe), cff), cfg)) → new_esEs5(zzz500, zzz400, cfe, cff, cfg)
new_esEs23(zzz5002, zzz4002, ty_Float) → new_esEs16(zzz5002, zzz4002)
new_ltEs20(zzz19011, zzz197011, ty_Bool) → new_ltEs5(zzz19011, zzz197011)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Char) → new_compare17(zzz19000, zzz197000)
new_ltEs7(Left(zzz19010), Right(zzz197010), eb, cg) → True
new_primMulNat0(Zero, Zero) → Zero
new_esEs6(@2(zzz5000, zzz5001), @2(zzz4000, zzz4001), bfg, bfh) → new_asAs(new_esEs13(zzz5000, zzz4000, bfg), new_esEs12(zzz5001, zzz4001, bfh))
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(app(ty_@3, fh), ga), gb), fg) → new_esEs5(zzz5000, zzz4000, fh, ga, gb)
new_splitLT10(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, True, h, ba, bd) → new_mkVBalBranch0(zzz1880, zzz1881, zzz1883, new_splitLT0(zzz1884, zzz190, zzz191, h, ba, bd), h, ba, bd)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Double) → new_ltEs17(zzz19010, zzz197010)
new_esEs27(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_Maybe, baf)) → new_esEs4(zzz1900, zzz19700, baf)
new_lt20(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_intersectFM_C2Lts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd) → new_splitLT20(@2(zzz184, zzz185), zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, new_lt12(@2(zzz190, zzz191), @2(zzz184, zzz185), h, ba), h, ba, bd)
new_esEs32(zzz211, zzz213, ty_Integer) → new_esEs15(zzz211, zzz213)
new_compare5(zzz19000, zzz197000, app(ty_Ratio, bef)) → new_compare11(zzz19000, zzz197000, bef)
new_esEs26(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs22(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, app(ty_Maybe, dda)) → new_ltEs8(zzz19011, zzz197011, dda)
new_ltEs18(zzz1901, zzz19701, ty_Char) → new_ltEs16(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(ty_[], bge)) → new_esEs18(zzz5001, zzz4001, bge)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_[], gc), fg) → new_esEs18(zzz5000, zzz4000, gc)
new_esEs24(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Bool, fg) → new_esEs9(zzz5000, zzz4000)
new_lt21(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_compare16(zzz1900, zzz19700, bad, bae) → new_compare27(zzz1900, zzz19700, new_esEs7(zzz1900, zzz19700, bad, bae), bad, bae)
new_esEs23(zzz5002, zzz4002, app(ty_Maybe, cge)) → new_esEs4(zzz5002, zzz4002, cge)
new_ltEs18(zzz1901, zzz19701, app(ty_Ratio, bff)) → new_ltEs6(zzz1901, zzz19701, bff)
new_gt0(zzz190, zzz191, zzz197, h, ba) → new_esEs8(new_compare30(zzz190, zzz191, zzz197, h, ba), GT)
new_esEs20(zzz1900, zzz19700, app(ty_Ratio, bdg)) → new_esEs14(zzz1900, zzz19700, bdg)
new_esEs13(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs23(zzz5002, zzz4002, ty_Bool) → new_esEs9(zzz5002, zzz4002)
new_compare18(Double(zzz19000, zzz19001), Double(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_esEs7(Right(zzz5000), Right(zzz4000), ha, app(app(app(ty_@3, hc), hd), he)) → new_esEs5(zzz5000, zzz4000, hc, hd, he)
new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd) → new_sizeFM(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd)
new_compare113(zzz286, zzz287, zzz288, zzz289, False, zzz291, bfd, bfe) → new_compare110(zzz286, zzz287, zzz288, zzz289, zzz291, bfd, bfe)
new_esEs31(zzz500, zzz400, ty_Char) → new_esEs17(zzz500, zzz400)
new_lt19(zzz19011, zzz197011, ty_Float) → new_lt13(zzz19011, zzz197011)
new_lt6(zzz1900, zzz19700, app(ty_Ratio, bdg)) → new_lt10(zzz1900, zzz19700, bdg)
new_compare0(:(zzz19000, zzz19001), :(zzz197000, zzz197001), bea) → new_primCompAux0(zzz19000, zzz197000, new_compare0(zzz19001, zzz197001, bea), bea)
new_esEs32(zzz211, zzz213, app(ty_[], dgc)) → new_esEs18(zzz211, zzz213, dgc)
new_splitLT0(EmptyFM, zzz190, zzz191, h, ba, bd) → new_emptyFM(h, ba, bd)
new_esEs22(zzz19010, zzz197010, app(ty_Ratio, ceg)) → new_esEs14(zzz19010, zzz197010, ceg)
new_esEs21(zzz19011, zzz197011, app(ty_Ratio, cde)) → new_esEs14(zzz19011, zzz197011, cde)
new_esEs15(Integer(zzz5000), Integer(zzz4000)) → new_primEqInt(zzz5000, zzz4000)
new_mkVBalBranch0(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), EmptyFM, h, ba, bd) → new_addToFM(Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz1890, zzz1891, h, ba, bd)
new_esEs20(zzz1900, zzz19700, app(app(ty_@2, cbe), cbf)) → new_esEs6(zzz1900, zzz19700, cbe, cbf)
new_esEs26(zzz5000, zzz4000, app(ty_Maybe, dcd)) → new_esEs4(zzz5000, zzz4000, dcd)
new_esEs22(zzz19010, zzz197010, app(app(ty_Either, cfc), cfd)) → new_esEs7(zzz19010, zzz197010, cfc, cfd)
new_lt6(zzz1900, zzz19700, app(app(app(ty_@3, cc), cd), ce)) → new_lt8(zzz1900, zzz19700, cc, cd, ce)
new_esEs29(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs13(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare29(zzz1900, zzz19700, False, baf) → new_compare115(zzz1900, zzz19700, new_ltEs8(zzz1900, zzz19700, baf), baf)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(app(ty_@3, bba), bbb), bbc)) → new_ltEs9(zzz19010, zzz197010, bba, bbb, bbc)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(app(ty_@3, da), db), dc), cg) → new_ltEs9(zzz19010, zzz197010, da, db, dc)
new_lt21(zzz19010, zzz197010, app(app(ty_@2, dfa), dfb)) → new_lt12(zzz19010, zzz197010, dfa, dfb)
new_esEs32(zzz211, zzz213, app(app(ty_@2, dgg), dgh)) → new_esEs6(zzz211, zzz213, dgg, dgh)
new_pePe(False, zzz315) → zzz315
new_esEs24(zzz5001, zzz4001, app(ty_Ratio, chb)) → new_esEs14(zzz5001, zzz4001, chb)
new_esEs23(zzz5002, zzz4002, ty_@0) → new_esEs19(zzz5002, zzz4002)
new_esEs27(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Left(zzz4000), ha, fg) → False
new_esEs7(Left(zzz5000), Right(zzz4000), ha, fg) → False
new_esEs18(:(zzz5000, zzz5001), [], dbf) → False
new_esEs18([], :(zzz4000, zzz4001), dbf) → False
new_ltEs16(zzz1901, zzz19701) → new_not(new_esEs8(new_compare17(zzz1901, zzz19701), GT))
new_esEs31(zzz500, zzz400, ty_Bool) → new_esEs9(zzz500, zzz400)
new_lt21(zzz19010, zzz197010, app(ty_[], deh)) → new_lt11(zzz19010, zzz197010, deh)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, app(app(ty_@2, fa), fb)) → new_ltEs13(zzz19010, zzz197010, fa, fb)
new_lt19(zzz19011, zzz197011, app(ty_Maybe, cda)) → new_lt7(zzz19011, zzz197011, cda)
new_esEs27(zzz19010, zzz197010, app(app(ty_Either, dfc), dfd)) → new_esEs7(zzz19010, zzz197010, dfc, dfd)
new_compare19(zzz1900, zzz19700, True, cc, cd, ce) → LT
new_splitGT10(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, True, h, ba, bd) → new_mkVBalBranch0(zzz1890, zzz1891, new_splitGT0(zzz1893, zzz190, zzz191, h, ba, bd), zzz1894, h, ba, bd)
new_ltEs20(zzz19011, zzz197011, ty_@0) → new_ltEs10(zzz19011, zzz197011)
new_esEs13(zzz5000, zzz4000, app(ty_Maybe, bhh)) → new_esEs4(zzz5000, zzz4000, bhh)
new_mkVBalBranch0(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bd) → new_mkVBalBranch3MkVBalBranch20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd)), new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd)), h, ba, bd)
new_esEs26(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs15(zzz1901, zzz19701) → new_not(new_esEs8(new_compare14(zzz1901, zzz19701), GT))
new_esEs22(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(ty_[], bea)) → new_esEs18(zzz1900, zzz19700, bea)
new_lt8(zzz1900, zzz19700, cc, cd, ce) → new_esEs8(new_compare7(zzz1900, zzz19700, cc, cd, ce), LT)
new_compare111(zzz1900, zzz19700, False) → GT
new_esEs22(zzz19010, zzz197010, ty_Bool) → new_esEs9(zzz19010, zzz197010)
new_compare111(zzz1900, zzz19700, True) → LT
new_ltEs20(zzz19011, zzz197011, app(ty_[], ddf)) → new_ltEs12(zzz19011, zzz197011, ddf)
new_esEs30(zzz210, zzz211, zzz212, zzz213, False, dfe, dff) → new_esEs8(new_compare25(@2(zzz210, zzz211), @2(zzz212, zzz213), False, dfe, dff), LT)
new_ltEs19(zzz19012, zzz197012, ty_Double) → new_ltEs17(zzz19012, zzz197012)
new_lt6(zzz1900, zzz19700, ty_@0) → new_lt9(zzz1900, zzz19700)
new_splitGT20(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, False, h, ba, bd) → new_splitGT10(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, new_lt12(@2(zzz190, zzz191), zzz1890, h, ba), h, ba, bd)
new_esEs32(zzz211, zzz213, app(ty_Maybe, dgd)) → new_esEs4(zzz211, zzz213, dgd)
new_primCmpNat0(Zero, Succ(zzz1970000)) → LT
new_compare115(zzz1900, zzz19700, False, baf) → GT
new_ltEs8(Nothing, Just(zzz197010), bag) → True
new_esEs25(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs16(Float(zzz5000, zzz5001), Float(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_esEs25(zzz5000, zzz4000, app(app(ty_@2, dbd), dbe)) → new_esEs6(zzz5000, zzz4000, dbd, dbe)
new_lt6(zzz1900, zzz19700, ty_Double) → new_lt18(zzz1900, zzz19700)
new_esEs8(LT, LT) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Int, fg) → new_esEs11(zzz5000, zzz4000)
new_compare115(zzz1900, zzz19700, True, baf) → LT
new_addToFM_C20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, False, h, ba, bd) → new_addToFM_C10(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, new_gt(zzz1890, zzz18940, h, ba), h, ba, bd)
new_esEs25(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_splitGT0(EmptyFM, zzz190, zzz191, h, ba, bd) → new_emptyFM(h, ba, bd)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Bool) → new_ltEs5(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_Either, chh), daa)) → new_esEs7(zzz5001, zzz4001, chh, daa)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_ltEs5(True, False) → False
new_lt21(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_esEs24(zzz5001, zzz4001, app(app(ty_@2, dab), dac)) → new_esEs6(zzz5001, zzz4001, dab, dac)
new_compare0([], [], bea) → EQ
new_pePe(True, zzz315) → True
new_compare15(zzz1900, zzz19700) → new_compare24(zzz1900, zzz19700, new_esEs9(zzz1900, zzz19700))
new_primEqNat0(Zero, Zero) → True
new_lt6(zzz1900, zzz19700, ty_Bool) → new_lt15(zzz1900, zzz19700)
new_esEs20(zzz1900, zzz19700, ty_Int) → new_esEs11(zzz1900, zzz19700)
new_ltEs18(zzz1901, zzz19701, ty_Double) → new_ltEs17(zzz1901, zzz19701)
new_esEs26(zzz5000, zzz4000, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Ordering) → new_ltEs4(zzz19011, zzz197011)
new_lt21(zzz19010, zzz197010, app(app(ty_Either, dfc), dfd)) → new_lt16(zzz19010, zzz197010, dfc, dfd)
new_primMulNat0(Succ(zzz500100), Succ(zzz400100)) → new_primPlusNat1(new_primMulNat0(zzz500100, Succ(zzz400100)), zzz400100)
new_esEs25(zzz5000, zzz4000, app(ty_[], dah)) → new_esEs18(zzz5000, zzz4000, dah)
new_esEs12(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_lt19(zzz19011, zzz197011, ty_Ordering) → new_lt5(zzz19011, zzz197011)
new_addToFM(zzz1894, zzz1890, zzz1891, h, ba, bd) → new_addToFM_C0(zzz1894, zzz1890, zzz1891, h, ba, bd)
new_mkBalBranch6MkBalBranch5(zzz2410, zzz2411, zzz2414, zzz297, True, h, ba, bb) → new_mkBranch(Zero, zzz2410, zzz2411, zzz297, zzz2414, app(app(ty_@2, h), ba), bb)
new_esEs24(zzz5001, zzz4001, app(ty_[], chf)) → new_esEs18(zzz5001, zzz4001, chf)
new_mkBalBranch6MkBalBranch5(zzz2410, zzz2411, zzz2414, zzz297, False, h, ba, bb) → new_mkBalBranch6MkBalBranch4(zzz2410, zzz2411, zzz2414, zzz297, new_gt1(new_mkBalBranch6Size_r(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb), new_sr(new_sIZE_RATIO, new_mkBalBranch6Size_l(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb))), h, ba, bb)
new_ltEs5(True, True) → True
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_Maybe, cf), cg) → new_ltEs8(zzz19010, zzz197010, cf)
new_mkBalBranch6MkBalBranch4(zzz2410, zzz2411, Branch(zzz24140, zzz24141, zzz24142, zzz24143, zzz24144), zzz297, True, h, ba, bb) → new_mkBalBranch6MkBalBranch01(zzz2410, zzz2411, zzz24140, zzz24141, zzz24142, zzz24143, zzz24144, zzz297, new_lt14(new_sizeFM0(zzz24143, h, ba, bb), new_sr(Pos(Succ(Succ(Zero))), new_sizeFM0(zzz24144, h, ba, bb))), h, ba, bb)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Ordering, fg) → new_esEs8(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, ty_Char) → new_esEs17(zzz5001, zzz4001)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_mkBalBranch6Size_l(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb) → new_sizeFM0(zzz297, h, ba, bb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_sr(zzz5001, zzz4001) → new_primMulInt(zzz5001, zzz4001)
new_esEs32(zzz211, zzz213, ty_Bool) → new_esEs9(zzz211, zzz213)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, app(ty_Maybe, ec)) → new_ltEs8(zzz19010, zzz197010, ec)
new_mkVBalBranch3MkVBalBranch10(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bd) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))))))), zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), app(app(ty_@2, h), ba), bd)
new_ltEs18(zzz1901, zzz19701, app(app(app(ty_@3, cag), cah), cba)) → new_ltEs9(zzz1901, zzz19701, cag, cah, cba)
new_esEs26(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_esEs8(GT, GT) → True
new_compare5(zzz19000, zzz197000, ty_Float) → new_compare13(zzz19000, zzz197000)
new_esEs25(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, app(app(ty_Either, hh), baa)) → new_esEs7(zzz5000, zzz4000, hh, baa)
new_lt21(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs31(zzz500, zzz400, app(app(ty_Either, ha), fg)) → new_esEs7(zzz500, zzz400, ha, fg)
new_esEs22(zzz19010, zzz197010, app(ty_[], ceh)) → new_esEs18(zzz19010, zzz197010, ceh)
new_ltEs9(@3(zzz19010, zzz19011, zzz19012), @3(zzz197010, zzz197011, zzz197012), cag, cah, cba) → new_pePe(new_lt20(zzz19010, zzz197010, cag), new_asAs(new_esEs22(zzz19010, zzz197010, cag), new_pePe(new_lt19(zzz19011, zzz197011, cah), new_asAs(new_esEs21(zzz19011, zzz197011, cah), new_ltEs19(zzz19012, zzz197012, cba)))))
new_esEs8(LT, GT) → False
new_esEs8(GT, LT) → False
new_lt20(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_addToFM_C0(EmptyFM, zzz1890, zzz1891, h, ba, bd) → Branch(zzz1890, zzz1891, Pos(Succ(Zero)), new_emptyFM(h, ba, bd), new_emptyFM(h, ba, bd))
new_esEs26(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Int) → new_ltEs15(zzz19011, zzz197011)
new_gt(zzz1890, zzz18940, h, ba) → new_esEs8(new_compare12(zzz1890, zzz18940, h, ba), GT)
new_lt21(zzz19010, zzz197010, app(ty_Ratio, deg)) → new_lt10(zzz19010, zzz197010, deg)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Char) → new_esEs17(zzz5000, zzz4000)
new_ltEs20(zzz19011, zzz197011, ty_Integer) → new_ltEs11(zzz19011, zzz197011)
new_sizeFM0(Branch(zzz24140, zzz24141, zzz24142, zzz24143, zzz24144), h, ba, bb) → zzz24142
new_esEs20(zzz1900, zzz19700, ty_Ordering) → new_esEs8(zzz1900, zzz19700)
new_ltEs5(False, False) → True
new_esEs23(zzz5002, zzz4002, ty_Ordering) → new_esEs8(zzz5002, zzz4002)
new_ltEs18(zzz1901, zzz19701, app(app(ty_Either, eb), cg)) → new_ltEs7(zzz1901, zzz19701, eb, cg)
new_sizeFM1(Branch(zzz4520, zzz4521, zzz4522, zzz4523, zzz4524), bcb, bcc) → zzz4522
new_ltEs19(zzz19012, zzz197012, app(app(app(ty_@3, cbh), cca), ccb)) → new_ltEs9(zzz19012, zzz197012, cbh, cca, ccb)
new_ltEs20(zzz19011, zzz197011, app(app(app(ty_@3, ddb), ddc), ddd)) → new_ltEs9(zzz19011, zzz197011, ddb, ddc, ddd)
new_lt4(zzz1900, zzz19700) → new_esEs8(new_compare10(zzz1900, zzz19700), LT)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Bool, cg) → new_ltEs5(zzz19010, zzz197010)
new_ltEs13(@2(zzz19010, zzz19011), @2(zzz197010, zzz197011), cbc, cbd) → new_pePe(new_lt21(zzz19010, zzz197010, cbc), new_asAs(new_esEs27(zzz19010, zzz197010, cbc), new_ltEs20(zzz19011, zzz197011, cbd)))
new_mkBalBranch6Size_r(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb) → new_sizeFM0(zzz2414, h, ba, bb)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, app(ty_[], cdf)) → new_esEs18(zzz19011, zzz197011, cdf)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Integer, fg) → new_esEs15(zzz5000, zzz4000)
new_ltEs7(Right(zzz19010), Left(zzz197010), eb, cg) → False
new_esEs7(Left(zzz5000), Left(zzz4000), app(app(ty_@2, gg), gh), fg) → new_esEs6(zzz5000, zzz4000, gg, gh)
new_splitGT0(Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), zzz190, zzz191, h, ba, bd) → new_splitGT20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz190, zzz191, new_gt0(zzz190, zzz191, zzz18940, h, ba), h, ba, bd)
new_ltEs19(zzz19012, zzz197012, ty_Ordering) → new_ltEs4(zzz19012, zzz197012)
new_esEs32(zzz211, zzz213, ty_Float) → new_esEs16(zzz211, zzz213)
new_esEs32(zzz211, zzz213, app(app(app(ty_@3, dfh), dga), dgb)) → new_esEs5(zzz211, zzz213, dfh, dga, dgb)
new_compare10(Integer(zzz19000), Integer(zzz197000)) → new_primCmpInt(zzz19000, zzz197000)
new_primEqInt(Neg(Succ(zzz50000)), Neg(Zero)) → False
new_primEqInt(Neg(Zero), Neg(Succ(zzz40000))) → False
new_esEs8(EQ, EQ) → True
new_esEs31(zzz500, zzz400, ty_Float) → new_esEs16(zzz500, zzz400)
new_primPlusNat1(Zero, zzz400100) → Succ(zzz400100)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_Either, bbh), bca)) → new_ltEs7(zzz19010, zzz197010, bbh, bca)
new_compare19(zzz1900, zzz19700, False, cc, cd, ce) → GT
new_esEs32(zzz211, zzz213, ty_Char) → new_esEs17(zzz211, zzz213)
new_esEs26(zzz5000, zzz4000, app(ty_[], dcc)) → new_esEs18(zzz5000, zzz4000, dcc)
new_esEs22(zzz19010, zzz197010, app(app(app(ty_@3, ced), cee), cef)) → new_esEs5(zzz19010, zzz197010, ced, cee, cef)
new_esEs20(zzz1900, zzz19700, ty_@0) → new_esEs19(zzz1900, zzz19700)
new_compare113(zzz286, zzz287, zzz288, zzz289, True, zzz291, bfd, bfe) → new_compare110(zzz286, zzz287, zzz288, zzz289, True, bfd, bfe)
new_esEs19(@0, @0) → True
new_ltEs18(zzz1901, zzz19701, ty_Ordering) → new_ltEs4(zzz1901, zzz19701)
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_compare14(zzz1900, zzz19700) → new_primCmpInt(zzz1900, zzz19700)
new_esEs26(zzz5000, zzz4000, app(app(ty_Either, dce), dcf)) → new_esEs7(zzz5000, zzz4000, dce, dcf)
new_ltEs4(EQ, LT) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_@0) → new_ltEs10(zzz19010, zzz197010)
new_addToFM_C20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, True, h, ba, bd) → new_mkBalBranch(zzz18940, zzz18941, new_addToFM_C0(zzz18943, zzz1890, zzz1891, h, ba, bd), zzz18944, h, ba, bd)
new_primCmpNat0(Succ(zzz190000), Succ(zzz1970000)) → new_primCmpNat0(zzz190000, zzz1970000)
new_primMinusNat0(Succ(zzz297200), Zero) → Pos(Succ(zzz297200))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_Either, bdc), bdd)) → new_esEs7(zzz5000, zzz4000, bdc, bdd)
new_lt19(zzz19011, zzz197011, app(app(ty_Either, cea), ceb)) → new_lt16(zzz19011, zzz197011, cea, ceb)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs22(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_esEs22(zzz19010, zzz197010, app(ty_Maybe, cec)) → new_esEs4(zzz19010, zzz197010, cec)
new_compare5(zzz19000, zzz197000, ty_@0) → new_compare8(zzz19000, zzz197000)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, app(app(ty_@2, bab), bac)) → new_esEs6(zzz5000, zzz4000, bab, bac)
new_mkVBalBranch3MkVBalBranch20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bd) → new_mkBalBranch(zzz18940, zzz18941, new_mkVBalBranch0(zzz1890, zzz1891, Branch(zzz3470, zzz3471, zzz3472, zzz3473, zzz3474), zzz18943, h, ba, bd), zzz18944, h, ba, bd)
new_lt21(zzz19010, zzz197010, app(app(app(ty_@3, ded), dee), def)) → new_lt8(zzz19010, zzz197010, ded, dee, def)
new_compare112(zzz1900, zzz19700, True) → LT
new_esEs25(zzz5000, zzz4000, app(ty_Maybe, dba)) → new_esEs4(zzz5000, zzz4000, dba)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Float, cg) → new_ltEs14(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Bool) → new_ltEs5(zzz1901, zzz19701)
new_esEs12(zzz5001, zzz4001, app(app(app(ty_@3, bgb), bgc), bgd)) → new_esEs5(zzz5001, zzz4001, bgb, bgc, bgd)
new_primEqInt(Pos(Succ(zzz50000)), Pos(Succ(zzz40000))) → new_primEqNat0(zzz50000, zzz40000)
new_compare27(zzz1900, zzz19700, True, bad, bae) → EQ
new_lt19(zzz19011, zzz197011, app(app(ty_@2, cdg), cdh)) → new_lt12(zzz19011, zzz197011, cdg, cdh)
new_ltEs20(zzz19011, zzz197011, ty_Float) → new_ltEs14(zzz19011, zzz197011)
new_mkBalBranch6MkBalBranch01(zzz2410, zzz2411, zzz24140, zzz24141, zzz24142, EmptyFM, zzz24144, zzz297, False, h, ba, bb) → error([])
new_esEs32(zzz211, zzz213, app(app(ty_Either, dge), dgf)) → new_esEs7(zzz211, zzz213, dge, dgf)
new_ltEs18(zzz1901, zzz19701, ty_@0) → new_ltEs10(zzz1901, zzz19701)
new_esEs23(zzz5002, zzz4002, ty_Char) → new_esEs17(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs32(zzz211, zzz213, ty_Double) → new_esEs10(zzz211, zzz213)
new_primEqNat0(Succ(zzz50000), Succ(zzz40000)) → new_primEqNat0(zzz50000, zzz40000)
new_esEs27(zzz19010, zzz197010, ty_Ordering) → new_esEs8(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, app(ty_[], hf)) → new_esEs18(zzz5000, zzz4000, hf)
new_esEs23(zzz5002, zzz4002, app(ty_Ratio, cfh)) → new_esEs14(zzz5002, zzz4002, cfh)
new_esEs13(zzz5000, zzz4000, app(app(app(ty_@3, bhd), bhe), bhf)) → new_esEs5(zzz5000, zzz4000, bhd, bhe, bhf)
new_compare5(zzz19000, zzz197000, ty_Int) → new_compare14(zzz19000, zzz197000)
new_splitLT0(Branch(zzz18830, zzz18831, zzz18832, zzz18833, zzz18834), zzz190, zzz191, h, ba, bd) → new_splitLT20(zzz18830, zzz18831, zzz18832, zzz18833, zzz18834, zzz190, zzz191, new_lt12(@2(zzz190, zzz191), zzz18830, h, ba), h, ba, bd)
new_lt14(zzz1900, zzz19700) → new_esEs8(new_compare14(zzz1900, zzz19700), LT)
new_sizeFM0(EmptyFM, h, ba, bb) → Pos(Zero)
new_esEs14(:%(zzz5000, zzz5001), :%(zzz4000, zzz4001), bdh) → new_asAs(new_esEs29(zzz5000, zzz4000, bdh), new_esEs28(zzz5001, zzz4001, bdh))
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(app(ty_@3, bcf), bcg), bch)) → new_esEs5(zzz5000, zzz4000, bcf, bcg, bch)
new_ltEs20(zzz19011, zzz197011, ty_Char) → new_ltEs16(zzz19011, zzz197011)
new_esEs22(zzz19010, zzz197010, ty_Double) → new_esEs10(zzz19010, zzz197010)
new_lt10(zzz1900, zzz19700, bdg) → new_esEs8(new_compare11(zzz1900, zzz19700, bdg), LT)
new_ltEs4(GT, EQ) → False
new_esEs32(zzz211, zzz213, ty_@0) → new_esEs19(zzz211, zzz213)
new_primCompAux00(zzz323, LT) → LT
new_addToFM_C10(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, True, h, ba, bd) → new_mkBalBranch(zzz18940, zzz18941, zzz18943, new_addToFM_C0(zzz18944, zzz1890, zzz1891, h, ba, bd), h, ba, bd)
new_lt6(zzz1900, zzz19700, ty_Integer) → new_lt4(zzz1900, zzz19700)
new_esEs28(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs25(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, app(app(ty_Either, ccg), cch)) → new_ltEs7(zzz19012, zzz197012, ccg, cch)
new_primCmpInt(Neg(Succ(zzz190000)), Neg(zzz197000)) → new_primCmpNat0(zzz197000, Succ(zzz190000))
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Int, cg) → new_ltEs15(zzz19010, zzz197010)
new_compare114(zzz1900, zzz19700, True, bad, bae) → LT
new_mkBalBranch6MkBalBranch11(zzz2410, zzz2411, zzz2414, zzz2970, zzz2971, zzz2972, zzz2973, EmptyFM, False, h, ba, bb) → error([])
new_esEs7(Right(zzz5000), Right(zzz4000), ha, app(ty_Ratio, hb)) → new_esEs14(zzz5000, zzz4000, hb)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_ltEs8(Just(zzz19010), Nothing, bag) → False
new_esEs24(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs27(zzz19010, zzz197010, app(app(app(ty_@3, ded), dee), def)) → new_esEs5(zzz19010, zzz197010, ded, dee, def)
new_esEs21(zzz19011, zzz197011, ty_Int) → new_esEs11(zzz19011, zzz197011)
new_esEs8(LT, EQ) → False
new_esEs8(EQ, LT) → False
new_primEqInt(Pos(Succ(zzz50000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz40000))) → False
new_mkBalBranch6MkBalBranch11(zzz2410, zzz2411, zzz2414, zzz2970, zzz2971, zzz2972, zzz2973, Branch(zzz29740, zzz29741, zzz29742, zzz29743, zzz29744), False, h, ba, bb) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))), zzz29740, zzz29741, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))))), zzz2970, zzz2971, zzz2973, zzz29743, app(app(ty_@2, h), ba), bb), new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))), zzz2410, zzz2411, zzz29744, zzz2414, app(app(ty_@2, h), ba), bb), app(app(ty_@2, h), ba), bb)
new_mkVBalBranch3MkVBalBranch20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, False, h, ba, bd) → new_mkVBalBranch3MkVBalBranch10(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, new_lt14(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd)), new_mkVBalBranch3Size_l(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd)), h, ba, bd)
new_esEs27(zzz19010, zzz197010, ty_@0) → new_esEs19(zzz19010, zzz197010)
new_ltEs18(zzz1901, zzz19701, ty_Integer) → new_ltEs11(zzz1901, zzz19701)
new_ltEs4(EQ, EQ) → True
new_mkBalBranch6MkBalBranch11(zzz2410, zzz2411, zzz2414, zzz2970, zzz2971, zzz2972, zzz2973, zzz2974, True, h, ba, bb) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))), zzz2970, zzz2971, zzz2973, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))), zzz2410, zzz2411, zzz2974, zzz2414, app(app(ty_@2, h), ba), bb), app(app(ty_@2, h), ba), bb)
new_primPlusNat0(Zero, Succ(zzz4001000)) → Succ(zzz4001000)
new_primPlusNat0(Succ(zzz26700), Zero) → Succ(zzz26700)
new_esEs31(zzz500, zzz400, ty_Double) → new_esEs10(zzz500, zzz400)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Ratio, bbd)) → new_ltEs6(zzz19010, zzz197010, bbd)
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz190000), Zero) → GT
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz1970000))) → LT
new_ltEs4(GT, LT) → False
new_addToFM_C0(Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), zzz1890, zzz1891, h, ba, bd) → new_addToFM_C20(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, new_lt12(zzz1890, zzz18940, h, ba), h, ba, bd)
new_sr0(Integer(zzz1970000), Integer(zzz190010)) → Integer(new_primMulInt(zzz1970000, zzz190010))
new_compare30(zzz190, zzz191, zzz197, h, ba) → new_compare25(@2(zzz190, zzz191), zzz197, new_esEs6(@2(zzz190, zzz191), zzz197, h, ba), h, ba)
new_primEqInt(Pos(Succ(zzz50000)), Neg(zzz4000)) → False
new_primEqInt(Neg(Succ(zzz50000)), Pos(zzz4000)) → False
new_compare24(zzz1900, zzz19700, False) → new_compare111(zzz1900, zzz19700, new_ltEs5(zzz1900, zzz19700))
new_ltEs5(False, True) → True
new_esEs4(Just(zzz5000), Just(zzz4000), app(app(ty_@2, bde), bdf)) → new_esEs6(zzz5000, zzz4000, bde, bdf)
new_esEs32(zzz211, zzz213, app(ty_Ratio, dfg)) → new_esEs14(zzz211, zzz213, dfg)
new_primPlusInt(Pos(zzz29720), Neg(zzz3700)) → new_primMinusNat0(zzz29720, zzz3700)
new_primPlusInt(Neg(zzz29720), Pos(zzz3700)) → new_primMinusNat0(zzz3700, zzz29720)
new_mkVBalBranch3MkVBalBranch10(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, zzz1890, zzz1891, True, h, ba, bd) → new_mkBalBranch(zzz3470, zzz3471, zzz3473, new_mkVBalBranch0(zzz1890, zzz1891, zzz3474, Branch(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944), h, ba, bd), h, ba, bd)
new_lt16(zzz1900, zzz19700, bad, bae) → new_esEs8(new_compare16(zzz1900, zzz19700, bad, bae), LT)
new_esEs22(zzz19010, zzz197010, app(app(ty_@2, cfa), cfb)) → new_esEs6(zzz19010, zzz197010, cfa, cfb)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Ordering, cg) → new_ltEs4(zzz19010, zzz197010)
new_compare7(zzz1900, zzz19700, cc, cd, ce) → new_compare26(zzz1900, zzz19700, new_esEs5(zzz1900, zzz19700, cc, cd, ce), cc, cd, ce)
new_compare9(zzz1900, zzz19700) → new_compare28(zzz1900, zzz19700, new_esEs8(zzz1900, zzz19700))
new_primEqInt(Pos(Zero), Neg(Succ(zzz40000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(zzz40000))) → False
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Char, cg) → new_ltEs16(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Integer) → new_esEs15(zzz19011, zzz197011)
new_esEs18(:(zzz5000, zzz5001), :(zzz4000, zzz4001), dbf) → new_asAs(new_esEs26(zzz5000, zzz4000, dbf), new_esEs18(zzz5001, zzz4001, dbf))
new_esEs31(zzz500, zzz400, ty_Integer) → new_esEs15(zzz500, zzz400)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz1970000))) → new_primCmpNat0(Zero, Succ(zzz1970000))
new_primCompAux00(zzz323, EQ) → zzz323
new_compare24(zzz1900, zzz19700, True) → EQ
new_esEs7(Right(zzz5000), Right(zzz4000), ha, app(ty_Maybe, hg)) → new_esEs4(zzz5000, zzz4000, hg)
new_lt21(zzz19010, zzz197010, ty_Char) → new_lt17(zzz19010, zzz197010)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs8(EQ, GT) → False
new_esEs8(GT, EQ) → False
new_esEs13(zzz5000, zzz4000, app(ty_[], bhg)) → new_esEs18(zzz5000, zzz4000, bhg)
new_lt17(zzz1900, zzz19700) → new_esEs8(new_compare17(zzz1900, zzz19700), LT)
new_esEs26(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Double) → new_esEs10(zzz19011, zzz197011)
new_ltEs19(zzz19012, zzz197012, app(app(ty_@2, cce), ccf)) → new_ltEs13(zzz19012, zzz197012, cce, ccf)
new_compare13(Float(zzz19000, zzz19001), Float(zzz197000, zzz197001)) → new_compare14(new_sr(zzz19000, zzz197000), new_sr(zzz19001, zzz197001))
new_compare114(zzz1900, zzz19700, False, bad, bae) → GT
new_esEs11(zzz500, zzz400) → new_primEqInt(zzz500, zzz400)
new_not(False) → True
new_compare5(zzz19000, zzz197000, app(app(ty_@2, beh), bfa)) → new_compare12(zzz19000, zzz197000, beh, bfa)
new_lt20(zzz19010, zzz197010, app(ty_[], ceh)) → new_lt11(zzz19010, zzz197010, ceh)
new_esEs13(zzz5000, zzz4000, app(app(ty_Either, caa), cab)) → new_esEs7(zzz5000, zzz4000, caa, cab)
new_mkVBalBranch3Size_r(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz3470, zzz3471, zzz3472, zzz3473, zzz3474, h, ba, bd) → new_sizeFM(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, h, ba, bd)
new_ltEs17(zzz1901, zzz19701) → new_not(new_esEs8(new_compare18(zzz1901, zzz19701), GT))
new_lt20(zzz19010, zzz197010, ty_Bool) → new_lt15(zzz19010, zzz197010)
new_primCmpInt(Pos(Succ(zzz190000)), Pos(zzz197000)) → new_primCmpNat0(Succ(zzz190000), zzz197000)
new_esEs26(zzz5000, zzz4000, app(ty_Ratio, dbg)) → new_esEs14(zzz5000, zzz4000, dbg)
new_esEs13(zzz5000, zzz4000, ty_Float) → new_esEs16(zzz5000, zzz4000)
new_esEs23(zzz5002, zzz4002, app(app(ty_@2, cgh), cha)) → new_esEs6(zzz5002, zzz4002, cgh, cha)
new_esEs25(zzz5000, zzz4000, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, app(ty_[], ccd)) → new_ltEs12(zzz19012, zzz197012, ccd)
new_esEs24(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_esEs32(zzz211, zzz213, ty_Ordering) → new_esEs8(zzz211, zzz213)
new_lt6(zzz1900, zzz19700, app(ty_[], bea)) → new_lt11(zzz1900, zzz19700, bea)
new_esEs31(zzz500, zzz400, app(ty_Ratio, bdh)) → new_esEs14(zzz500, zzz400, bdh)
new_splitLT20(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, False, h, ba, bd) → new_splitLT10(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, new_gt0(zzz190, zzz191, zzz1880, h, ba), h, ba, bd)
new_lt20(zzz19010, zzz197010, app(app(ty_Either, cfc), cfd)) → new_lt16(zzz19010, zzz197010, cfc, cfd)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, app(ty_[], eh)) → new_ltEs12(zzz19010, zzz197010, eh)
new_compare0(:(zzz19000, zzz19001), [], bea) → GT
new_lt21(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt19(zzz19011, zzz197011, ty_Integer) → new_lt4(zzz19011, zzz197011)
new_compare28(zzz1900, zzz19700, True) → EQ
new_esEs27(zzz19010, zzz197010, app(ty_[], deh)) → new_esEs18(zzz19010, zzz197010, deh)
new_mkBalBranch6MkBalBranch01(zzz2410, zzz2411, zzz24140, zzz24141, zzz24142, zzz24143, zzz24144, zzz297, True, h, ba, bb) → new_mkBranch(Succ(Succ(Zero)), zzz24140, zzz24141, new_mkBranch(Succ(Succ(Succ(Zero))), zzz2410, zzz2411, zzz297, zzz24143, app(app(ty_@2, h), ba), bb), zzz24144, app(app(ty_@2, h), ba), bb)
new_esEs9(True, True) → True
new_esEs27(zzz19010, zzz197010, ty_Int) → new_esEs11(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Float) → new_ltEs14(zzz19010, zzz197010)
new_esEs20(zzz1900, zzz19700, app(app(app(ty_@3, cc), cd), ce)) → new_esEs5(zzz1900, zzz19700, cc, cd, ce)
new_primCmpInt(Pos(Succ(zzz190000)), Neg(zzz197000)) → GT
new_esEs21(zzz19011, zzz197011, app(app(app(ty_@3, cdb), cdc), cdd)) → new_esEs5(zzz19011, zzz197011, cdb, cdc, cdd)
new_lt19(zzz19011, zzz197011, ty_Char) → new_lt17(zzz19011, zzz197011)
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Integer) → new_compare10(new_sr0(zzz19000, zzz197001), new_sr0(zzz197000, zzz19001))
new_esEs31(zzz500, zzz400, app(ty_[], dbf)) → new_esEs18(zzz500, zzz400, dbf)
new_esEs7(Left(zzz5000), Left(zzz4000), app(ty_Ratio, ff), fg) → new_esEs14(zzz5000, zzz4000, ff)
new_primMulInt(Pos(zzz50010), Pos(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs13(zzz5000, zzz4000, ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs27(zzz19010, zzz197010, ty_Char) → new_esEs17(zzz19010, zzz197010)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Int) → new_ltEs15(zzz19010, zzz197010)
new_ltEs19(zzz19012, zzz197012, app(ty_Maybe, cbg)) → new_ltEs8(zzz19012, zzz197012, cbg)
new_primMulInt(Neg(zzz50010), Neg(zzz40010)) → Pos(new_primMulNat0(zzz50010, zzz40010))
new_esEs27(zzz19010, zzz197010, app(app(ty_@2, dfa), dfb)) → new_esEs6(zzz19010, zzz197010, dfa, dfb)
new_ltEs19(zzz19012, zzz197012, app(ty_Ratio, ccc)) → new_ltEs6(zzz19012, zzz197012, ccc)
new_esEs20(zzz1900, zzz19700, ty_Integer) → new_esEs15(zzz1900, zzz19700)
new_lt9(zzz1900, zzz19700) → new_esEs8(new_compare8(zzz1900, zzz19700), LT)
new_mkBalBranch6MkBalBranch4(zzz2410, zzz2411, EmptyFM, zzz297, True, h, ba, bb) → error([])
new_primEqNat0(Succ(zzz50000), Zero) → False
new_primEqNat0(Zero, Succ(zzz40000)) → False
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, ty_Integer) → new_ltEs11(zzz19010, zzz197010)
new_primPlusNat0(Zero, Zero) → Zero
new_lt20(zzz19010, zzz197010, app(app(ty_@2, cfa), cfb)) → new_lt12(zzz19010, zzz197010, cfa, cfb)
new_compare25(zzz190, zzz1970, True, cae, caf) → EQ
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_Either, dh), ea), cg) → new_ltEs7(zzz19010, zzz197010, dh, ea)
new_splitGT10(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, False, h, ba, bd) → zzz1894
new_esEs24(zzz5001, zzz4001, ty_Double) → new_esEs10(zzz5001, zzz4001)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs4(Nothing, Nothing, bcd) → True
new_lt19(zzz19011, zzz197011, app(ty_[], cdf)) → new_lt11(zzz19011, zzz197011, cdf)
new_primPlusInt(Neg(zzz29720), Neg(zzz3700)) → Neg(new_primPlusNat0(zzz29720, zzz3700))
new_ltEs6(zzz1901, zzz19701, bff) → new_not(new_esEs8(new_compare11(zzz1901, zzz19701, bff), GT))
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Char, fg) → new_esEs17(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Bool) → new_esEs9(zzz19011, zzz197011)
new_esEs12(zzz5001, zzz4001, ty_@0) → new_esEs19(zzz5001, zzz4001)
new_mkBalBranch6MkBalBranch3(zzz2410, zzz2411, zzz2414, Branch(zzz2970, zzz2971, zzz2972, zzz2973, zzz2974), True, h, ba, bb) → new_mkBalBranch6MkBalBranch11(zzz2410, zzz2411, zzz2414, zzz2970, zzz2971, zzz2972, zzz2973, zzz2974, new_lt14(new_sizeFM0(zzz2974, h, ba, bb), new_sr(Pos(Succ(Succ(Zero))), new_sizeFM0(zzz2973, h, ba, bb))), h, ba, bb)
new_esEs23(zzz5002, zzz4002, ty_Int) → new_esEs11(zzz5002, zzz4002)
new_lt20(zzz19010, zzz197010, ty_Ordering) → new_lt5(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, ty_Ordering) → new_lt5(zzz1900, zzz19700)
new_esEs27(zzz19010, zzz197010, app(ty_Maybe, dec)) → new_esEs4(zzz19010, zzz197010, dec)
new_esEs21(zzz19011, zzz197011, app(app(ty_Either, cea), ceb)) → new_esEs7(zzz19011, zzz197011, cea, ceb)
new_mkBalBranch6MkBalBranch3(zzz2410, zzz2411, zzz2414, EmptyFM, True, h, ba, bb) → error([])
new_ltEs20(zzz19011, zzz197011, ty_Double) → new_ltEs17(zzz19011, zzz197011)
new_ltEs4(LT, GT) → True
new_primPlusNat1(Succ(zzz2670), zzz400100) → Succ(Succ(new_primPlusNat0(zzz2670, zzz400100)))
new_lt15(zzz1900, zzz19700) → new_esEs8(new_compare15(zzz1900, zzz19700), LT)
new_lt21(zzz19010, zzz197010, ty_Integer) → new_lt4(zzz19010, zzz197010)
new_primMinusNat0(Zero, Zero) → Pos(Zero)
new_lt20(zzz19010, zzz197010, ty_@0) → new_lt9(zzz19010, zzz197010)
new_esEs21(zzz19011, zzz197011, ty_Char) → new_esEs17(zzz19011, zzz197011)
new_ltEs12(zzz1901, zzz19701, cbb) → new_not(new_esEs8(new_compare0(zzz1901, zzz19701, cbb), GT))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz1970000))) → new_primCmpNat0(Succ(zzz1970000), Zero)
new_esEs20(zzz1900, zzz19700, ty_Bool) → new_esEs9(zzz1900, zzz19700)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz1970000))) → GT
new_esEs25(zzz5000, zzz4000, app(ty_Ratio, dad)) → new_esEs14(zzz5000, zzz4000, dad)
new_lt20(zzz19010, zzz197010, ty_Double) → new_lt18(zzz19010, zzz197010)
new_esEs32(zzz211, zzz213, ty_Int) → new_esEs11(zzz211, zzz213)
new_ltEs18(zzz1901, zzz19701, ty_Float) → new_ltEs14(zzz1901, zzz19701)
new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_esEs13(zzz5000, zzz4000, app(app(ty_@2, cac), cad)) → new_esEs6(zzz5000, zzz4000, cac, cad)
new_compare5(zzz19000, zzz197000, ty_Integer) → new_compare10(zzz19000, zzz197000)
new_lt6(zzz1900, zzz19700, app(app(ty_Either, bad), bae)) → new_lt16(zzz1900, zzz19700, bad, bae)
new_emptyFM(bf, bg, bh) → EmptyFM
new_esEs24(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, app(app(ty_Either, bgg), bgh)) → new_esEs7(zzz5001, zzz4001, bgg, bgh)
new_ltEs19(zzz19012, zzz197012, ty_Integer) → new_ltEs11(zzz19012, zzz197012)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Integer, cg) → new_ltEs11(zzz19010, zzz197010)
new_primPlusInt(Pos(zzz29720), Pos(zzz3700)) → Pos(new_primPlusNat0(zzz29720, zzz3700))
new_esEs21(zzz19011, zzz197011, app(ty_Maybe, cda)) → new_esEs4(zzz19011, zzz197011, cda)
new_esEs25(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs9(False, True) → False
new_esEs9(True, False) → False
new_esEs20(zzz1900, zzz19700, app(app(ty_Either, bad), bae)) → new_esEs7(zzz1900, zzz19700, bad, bae)
new_esEs30(zzz210, zzz211, zzz212, zzz213, True, dfe, dff) → new_esEs8(new_compare25(@2(zzz210, zzz211), @2(zzz212, zzz213), new_esEs32(zzz211, zzz213, dff), dfe, dff), LT)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_mkBalBranch6MkBalBranch3(zzz2410, zzz2411, zzz2414, zzz297, False, h, ba, bb) → new_mkBranch(Succ(Zero), zzz2410, zzz2411, zzz297, zzz2414, app(app(ty_@2, h), ba), bb)
new_compare29(zzz1900, zzz19700, True, baf) → EQ
new_esEs27(zzz19010, zzz197010, app(ty_Ratio, deg)) → new_esEs14(zzz19010, zzz197010, deg)
new_ltEs4(LT, EQ) → True
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_Maybe, bah)) → new_ltEs8(zzz19010, zzz197010, bah)
new_lt20(zzz19010, zzz197010, app(ty_Maybe, cec)) → new_lt7(zzz19010, zzz197010, cec)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, app(app(ty_Either, fc), fd)) → new_ltEs7(zzz19010, zzz197010, fc, fd)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Double) → new_esEs10(zzz5000, zzz4000)
new_esEs12(zzz5001, zzz4001, app(ty_Maybe, bgf)) → new_esEs4(zzz5001, zzz4001, bgf)
new_mkVBalBranch0(zzz1890, zzz1891, EmptyFM, zzz1894, h, ba, bd) → new_addToFM(zzz1894, zzz1890, zzz1891, h, ba, bd)
new_asAs(False, zzz239) → False
new_primMulInt(Pos(zzz50010), Neg(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_primMulInt(Neg(zzz50010), Pos(zzz40010)) → Neg(new_primMulNat0(zzz50010, zzz40010))
new_compare11(:%(zzz19000, zzz19001), :%(zzz197000, zzz197001), ty_Int) → new_compare14(new_sr(zzz19000, zzz197001), new_sr(zzz197000, zzz19001))
new_esEs13(zzz5000, zzz4000, app(ty_Ratio, bhc)) → new_esEs14(zzz5000, zzz4000, bhc)
new_sizeFM1(EmptyFM, bcb, bcc) → Pos(Zero)
new_compare12(zzz1900, zzz19700, cbe, cbf) → new_compare25(zzz1900, zzz19700, new_esEs6(zzz1900, zzz19700, cbe, cbf), cbe, cbf)
new_primMulNat0(Succ(zzz500100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz400100)) → Zero
new_ltEs19(zzz19012, zzz197012, ty_Float) → new_ltEs14(zzz19012, zzz197012)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Ordering) → new_ltEs4(zzz19010, zzz197010)
new_esEs13(zzz5000, zzz4000, ty_Bool) → new_esEs9(zzz5000, zzz4000)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_esEs18([], [], dbf) → True
new_esEs21(zzz19011, zzz197011, ty_Ordering) → new_esEs8(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), app(ty_[], bda)) → new_esEs18(zzz5000, zzz4000, bda)
new_lt19(zzz19011, zzz197011, ty_Double) → new_lt18(zzz19011, zzz197011)
new_esEs29(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs19(zzz19012, zzz197012, ty_Char) → new_ltEs16(zzz19012, zzz197012)
new_ltEs19(zzz19012, zzz197012, ty_@0) → new_ltEs10(zzz19012, zzz197012)
new_esEs20(zzz1900, zzz19700, ty_Float) → new_esEs16(zzz1900, zzz19700)
new_lt23(zzz190, zzz191, zzz2000, h, ba) → new_esEs8(new_compare30(zzz190, zzz191, zzz2000, h, ba), LT)
new_lt11(zzz1900, zzz19700, bea) → new_esEs8(new_compare0(zzz1900, zzz19700, bea), LT)
new_lt13(zzz1900, zzz19700) → new_esEs8(new_compare13(zzz1900, zzz19700), LT)
new_esEs28(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs31(zzz500, zzz400, ty_@0) → new_esEs19(zzz500, zzz400)
new_lt20(zzz19010, zzz197010, ty_Float) → new_lt13(zzz19010, zzz197010)
new_compare110(zzz286, zzz287, zzz288, zzz289, False, bfd, bfe) → GT
new_esEs5(@3(zzz5000, zzz5001, zzz5002), @3(zzz4000, zzz4001, zzz4002), cfe, cff, cfg) → new_asAs(new_esEs25(zzz5000, zzz4000, cfe), new_asAs(new_esEs24(zzz5001, zzz4001, cff), new_esEs23(zzz5002, zzz4002, cfg)))
new_ltEs18(zzz1901, zzz19701, app(app(ty_@2, cbc), cbd)) → new_ltEs13(zzz1901, zzz19701, cbc, cbd)
new_esEs23(zzz5002, zzz4002, ty_Integer) → new_esEs15(zzz5002, zzz4002)
new_esEs26(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt19(zzz19011, zzz197011, ty_Bool) → new_lt15(zzz19011, zzz197011)
new_compare5(zzz19000, zzz197000, ty_Bool) → new_compare15(zzz19000, zzz197000)
new_esEs9(False, False) → True
new_primMinusNat0(Zero, Succ(zzz37000)) → Neg(Succ(zzz37000))
new_ltEs19(zzz19012, zzz197012, ty_Bool) → new_ltEs5(zzz19012, zzz197012)
new_esEs22(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, app(ty_Maybe, beb)) → new_compare6(zzz19000, zzz197000, beb)
new_splitGT20(zzz1890, zzz1891, zzz1892, zzz1893, zzz1894, zzz190, zzz191, True, h, ba, bd) → new_splitGT0(zzz1894, zzz190, zzz191, h, ba, bd)
new_ltEs7(Left(zzz19010), Left(zzz197010), app(app(ty_@2, df), dg), cg) → new_ltEs13(zzz19010, zzz197010, df, dg)
new_ltEs20(zzz19011, zzz197011, app(app(ty_Either, dea), deb)) → new_ltEs7(zzz19011, zzz197011, dea, deb)
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, app(app(app(ty_@3, ed), ee), ef)) → new_ltEs9(zzz19010, zzz197010, ed, ee, ef)
new_sizeFM(zzz2420, zzz2421, zzz2422, zzz2423, zzz2424, h, ba, bb) → zzz2422
new_ltEs7(Left(zzz19010), Left(zzz197010), app(ty_[], de), cg) → new_ltEs12(zzz19010, zzz197010, de)
new_esEs7(Right(zzz5000), Right(zzz4000), ha, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Int) → new_esEs11(zzz5000, zzz4000)
new_ltEs18(zzz1901, zzz19701, app(ty_Maybe, bag)) → new_ltEs8(zzz1901, zzz19701, bag)
new_ltEs4(LT, LT) → True
new_ltEs19(zzz19012, zzz197012, ty_Int) → new_ltEs15(zzz19012, zzz197012)
new_ltEs8(Nothing, Nothing, bag) → True
new_ltEs10(zzz1901, zzz19701) → new_not(new_esEs8(new_compare8(zzz1901, zzz19701), GT))
new_esEs23(zzz5002, zzz4002, ty_Double) → new_esEs10(zzz5002, zzz4002)
new_esEs31(zzz500, zzz400, app(ty_Maybe, bcd)) → new_esEs4(zzz500, zzz400, bcd)
new_esEs25(zzz5000, zzz4000, app(app(app(ty_@3, dae), daf), dag)) → new_esEs5(zzz5000, zzz4000, dae, daf, dag)
new_ltEs20(zzz19011, zzz197011, app(ty_Ratio, dde)) → new_ltEs6(zzz19011, zzz197011, dde)
new_lt5(zzz1900, zzz19700) → new_esEs8(new_compare9(zzz1900, zzz19700), LT)
new_compare112(zzz1900, zzz19700, False) → GT
new_esEs12(zzz5001, zzz4001, ty_Int) → new_esEs11(zzz5001, zzz4001)
new_lt12(zzz1900, zzz19700, cbe, cbf) → new_esEs8(new_compare12(zzz1900, zzz19700, cbe, cbf), LT)
new_esEs12(zzz5001, zzz4001, app(ty_Ratio, bga)) → new_esEs14(zzz5001, zzz4001, bga)
new_compare5(zzz19000, zzz197000, ty_Ordering) → new_compare9(zzz19000, zzz197000)
new_mkBalBranch(zzz2410, zzz2411, zzz297, zzz2414, h, ba, bb) → new_mkBalBranch6MkBalBranch5(zzz2410, zzz2411, zzz2414, zzz297, new_lt14(new_primPlusInt(new_mkBalBranch6Size_l(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb), new_mkBalBranch6Size_r(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb)), Pos(Succ(Succ(Zero)))), h, ba, bb)
new_lt6(zzz1900, zzz19700, ty_Float) → new_lt13(zzz1900, zzz19700)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_@0) → new_esEs19(zzz5000, zzz4000)
new_esEs24(zzz5001, zzz4001, ty_Bool) → new_esEs9(zzz5001, zzz4001)
new_compare5(zzz19000, zzz197000, app(app(app(ty_@3, bec), bed), bee)) → new_compare7(zzz19000, zzz197000, bec, bed, bee)
new_esEs20(zzz1900, zzz19700, ty_Char) → new_esEs17(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), ty_Char) → new_ltEs16(zzz19010, zzz197010)
new_primPlusNat0(Succ(zzz26700), Succ(zzz4001000)) → Succ(Succ(new_primPlusNat0(zzz26700, zzz4001000)))
new_compare26(zzz1900, zzz19700, True, cc, cd, ce) → EQ
new_esEs22(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_lt6(zzz1900, zzz19700, app(ty_Maybe, baf)) → new_lt7(zzz1900, zzz19700, baf)
new_lt6(zzz1900, zzz19700, ty_Int) → new_lt14(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(app(ty_@2, bbf), bbg)) → new_ltEs13(zzz19010, zzz197010, bbf, bbg)
new_compare0([], :(zzz197000, zzz197001), bea) → LT
new_esEs12(zzz5001, zzz4001, ty_Ordering) → new_esEs8(zzz5001, zzz4001)
new_esEs13(zzz5000, zzz4000, ty_Ordering) → new_esEs8(zzz5000, zzz4000)
new_splitLT10(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, False, h, ba, bd) → zzz1883
new_gt1(zzz361, zzz360) → new_esEs8(new_compare14(zzz361, zzz360), GT)
new_asAs(True, zzz239) → zzz239
new_esEs24(zzz5001, zzz4001, ty_Float) → new_esEs16(zzz5001, zzz4001)
new_esEs12(zzz5001, zzz4001, ty_Integer) → new_esEs15(zzz5001, zzz4001)
new_esEs25(zzz5000, zzz4000, ty_Int) → new_esEs11(zzz5000, zzz4000)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_@0, fg) → new_esEs19(zzz5000, zzz4000)
new_esEs26(zzz5000, zzz4000, app(app(app(ty_@3, dbh), dca), dcb)) → new_esEs5(zzz5000, zzz4000, dbh, dca, dcb)
new_esEs27(zzz19010, zzz197010, ty_Float) → new_esEs16(zzz19010, zzz197010)
new_compare5(zzz19000, zzz197000, ty_Double) → new_compare18(zzz19000, zzz197000)
new_esEs13(zzz5000, zzz4000, ty_Double) → new_esEs10(zzz5000, zzz4000)
new_lt20(zzz19010, zzz197010, app(ty_Ratio, ceg)) → new_lt10(zzz19010, zzz197010, ceg)
new_lt6(zzz1900, zzz19700, ty_Char) → new_lt17(zzz1900, zzz19700)
new_splitLT20(zzz1880, zzz1881, zzz1882, zzz1883, zzz1884, zzz190, zzz191, True, h, ba, bd) → new_splitLT0(zzz1883, zzz190, zzz191, h, ba, bd)
new_lt19(zzz19011, zzz197011, ty_@0) → new_lt9(zzz19011, zzz197011)
new_esEs4(Just(zzz5000), Just(zzz4000), ty_Integer) → new_esEs15(zzz5000, zzz4000)
new_compare8(@0, @0) → EQ
new_ltEs11(zzz1901, zzz19701) → new_not(new_esEs8(new_compare10(zzz1901, zzz19701), GT))
new_mkBranch(zzz448, zzz449, zzz450, zzz451, zzz452, bcb, bcc) → Branch(zzz449, zzz450, new_primPlusInt(new_primPlusInt(Pos(Succ(Zero)), new_sizeFM1(zzz451, bcb, bcc)), new_sizeFM1(zzz452, bcb, bcc)), zzz451, zzz452)
new_primCompAux0(zzz19000, zzz197000, zzz316, bea) → new_primCompAux00(zzz316, new_compare5(zzz19000, zzz197000, bea))
new_lt20(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_addToFM_C10(zzz18940, zzz18941, zzz18942, zzz18943, zzz18944, zzz1890, zzz1891, False, h, ba, bd) → Branch(zzz1890, zzz1891, zzz18942, zzz18943, zzz18944)
new_esEs26(zzz5000, zzz4000, app(app(ty_@2, dcg), dch)) → new_esEs6(zzz5000, zzz4000, dcg, dch)
new_esEs23(zzz5002, zzz4002, app(app(app(ty_@3, cga), cgb), cgc)) → new_esEs5(zzz5002, zzz4002, cga, cgb, cgc)
new_ltEs18(zzz1901, zzz19701, app(ty_[], cbb)) → new_ltEs12(zzz1901, zzz19701, cbb)
new_esEs31(zzz500, zzz400, ty_Int) → new_esEs11(zzz500, zzz400)
new_ltEs20(zzz19011, zzz197011, app(app(ty_@2, ddg), ddh)) → new_ltEs13(zzz19011, zzz197011, ddg, ddh)
new_compare5(zzz19000, zzz197000, app(app(ty_Either, bfb), bfc)) → new_compare16(zzz19000, zzz197000, bfb, bfc)
new_lt18(zzz1900, zzz19700) → new_esEs8(new_compare18(zzz1900, zzz19700), LT)
new_compare28(zzz1900, zzz19700, False) → new_compare112(zzz1900, zzz19700, new_ltEs4(zzz1900, zzz19700))
new_lt21(zzz19010, zzz197010, ty_Int) → new_lt14(zzz19010, zzz197010)
new_ltEs4(GT, GT) → True
new_ltEs7(Right(zzz19010), Right(zzz197010), eb, app(ty_Ratio, eg)) → new_ltEs6(zzz19010, zzz197010, eg)
new_esEs23(zzz5002, zzz4002, app(ty_[], cgd)) → new_esEs18(zzz5002, zzz4002, cgd)
new_esEs20(zzz1900, zzz19700, ty_Double) → new_esEs10(zzz1900, zzz19700)
new_ltEs8(Just(zzz19010), Just(zzz197010), app(ty_[], bbe)) → new_ltEs12(zzz19010, zzz197010, bbe)
new_intersectFM_C2Gts(zzz184, zzz185, zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, h, ba, bd) → new_splitGT20(@2(zzz184, zzz185), zzz186, zzz187, zzz188, zzz189, zzz190, zzz191, new_gt0(zzz190, zzz191, @2(zzz184, zzz185), h, ba), h, ba, bd)
new_primCompAux00(zzz323, GT) → GT
new_esEs25(zzz5000, zzz4000, app(app(ty_Either, dbb), dbc)) → new_esEs7(zzz5000, zzz4000, dbb, dbc)
new_compare6(zzz1900, zzz19700, baf) → new_compare29(zzz1900, zzz19700, new_esEs4(zzz1900, zzz19700, baf), baf)
new_esEs31(zzz500, zzz400, app(app(ty_@2, bfg), bfh)) → new_esEs6(zzz500, zzz400, bfg, bfh)
new_esEs7(Left(zzz5000), Left(zzz4000), ty_Float, fg) → new_esEs16(zzz5000, zzz4000)
new_esEs21(zzz19011, zzz197011, ty_Float) → new_esEs16(zzz19011, zzz197011)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_mkBalBranch6MkBalBranch4(zzz2410, zzz2411, zzz2414, zzz297, False, h, ba, bb) → new_mkBalBranch6MkBalBranch3(zzz2410, zzz2411, zzz2414, zzz297, new_gt1(new_mkBalBranch6Size_l(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb), new_sr(new_sIZE_RATIO, new_mkBalBranch6Size_r(zzz2410, zzz2411, zzz2414, zzz297, h, ba, bb))), h, ba, bb)
new_lt6(zzz1900, zzz19700, app(app(ty_@2, cbe), cbf)) → new_lt12(zzz1900, zzz19700, cbe, cbf)
new_lt19(zzz19011, zzz197011, ty_Int) → new_lt14(zzz19011, zzz197011)
new_esEs10(Double(zzz5000, zzz5001), Double(zzz4000, zzz4001)) → new_esEs11(new_sr(zzz5000, zzz4000), new_sr(zzz5001, zzz4001))
new_ltEs18(zzz1901, zzz19701, ty_Int) → new_ltEs15(zzz1901, zzz19701)
new_ltEs7(Left(zzz19010), Left(zzz197010), ty_Double, cg) → new_ltEs17(zzz19010, zzz197010)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_esEs27(zzz19010, zzz197010, ty_Integer) → new_esEs15(zzz19010, zzz197010)
new_esEs12(zzz5001, zzz4001, app(app(ty_@2, bha), bhb)) → new_esEs6(zzz5001, zzz4001, bha, bhb)
new_primCmpInt(Neg(Succ(zzz190000)), Pos(zzz197000)) → LT
new_not(True) → False
new_compare5(zzz19000, zzz197000, app(ty_[], beg)) → new_compare0(zzz19000, zzz197000, beg)
new_primMinusNat0(Succ(zzz297200), Succ(zzz37000)) → new_primMinusNat0(zzz297200, zzz37000)

The set Q consists of the following terms:

new_lt6(x0, x1, ty_Float)
new_esEs31(x0, x1, app(ty_Maybe, x2))
new_intersectFM_C2Lts(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_esEs22(x0, x1, ty_Char)
new_esEs31(x0, x1, ty_@0)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs25(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs31(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs13(x0, x1, app(ty_Ratio, x2))
new_addToFM_C20(x0, x1, x2, x3, x4, x5, x6, False, x7, x8, x9)
new_esEs32(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_sizeFM0(Branch(x0, x1, x2, x3, x4), x5, x6, x7)
new_mkBalBranch6MkBalBranch3(x0, x1, x2, Branch(x3, x4, x5, x6, x7), True, x8, x9, x10)
new_gt0(x0, x1, x2, x3, x4)
new_addToFM_C0(EmptyFM, x0, x1, x2, x3, x4)
new_primMinusNat0(Zero, Zero)
new_esEs31(x0, x1, app(app(ty_@2, x2), x3))
new_lt6(x0, x1, ty_@0)
new_ltEs13(@2(x0, x1), @2(x2, x3), x4, x5)
new_asAs(True, x0)
new_compare13(Float(x0, x1), Float(x2, x3))
new_compare30(x0, x1, x2, x3, x4)
new_compare5(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_@0)
new_primPlusInt(Neg(x0), Pos(x1))
new_primPlusInt(Pos(x0), Neg(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_lt20(x0, x1, ty_Char)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_compare114(x0, x1, True, x2, x3)
new_lt19(x0, x1, app(ty_[], x2))
new_primCmpNat0(Succ(x0), Zero)
new_sizeFM0(EmptyFM, x0, x1, x2)
new_lt7(x0, x1, x2)
new_ltEs18(x0, x1, ty_Ordering)
new_primMinusNat0(Zero, Succ(x0))
new_compare5(x0, x1, ty_Float)
new_lt19(x0, x1, ty_Ordering)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, app(ty_Maybe, x2))
new_lt6(x0, x1, ty_Integer)
new_esEs12(x0, x1, ty_Char)
new_esEs13(x0, x1, ty_Int)
new_esEs20(x0, x1, ty_Integer)
new_lt6(x0, x1, app(ty_Maybe, x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs29(x0, x1, ty_Int)
new_sr(x0, x1)
new_lt21(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs32(x0, x1, ty_@0)
new_ltEs20(x0, x1, ty_Ordering)
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs14(:%(x0, x1), :%(x2, x3), x4)
new_lt20(x0, x1, ty_Ordering)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs23(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Char)
new_mkVBalBranch0(x0, x1, Branch(x2, x3, x4, x5, x6), Branch(x7, x8, x9, x10, x11), x12, x13, x14)
new_compare113(x0, x1, x2, x3, True, x4, x5, x6)
new_ltEs19(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs12(x0, x1, ty_@0)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, x1, ty_Integer)
new_esEs8(GT, GT)
new_esEs21(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Float)
new_compare114(x0, x1, False, x2, x3)
new_esEs26(x0, x1, ty_Ordering)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_esEs13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs20(x0, x1, ty_Integer)
new_primCompAux00(x0, LT)
new_lt6(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs8(LT, LT)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs31(x0, x1, ty_Bool)
new_ltEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs27(x0, x1, ty_Double)
new_esEs12(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_ltEs18(x0, x1, ty_Bool)
new_compare7(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_lt21(x0, x1, app(ty_Ratio, x2))
new_ltEs5(False, False)
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_compare8(@0, @0)
new_esEs26(x0, x1, ty_Int)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_compare27(x0, x1, True, x2, x3)
new_intersectFM_C2Gts(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_esEs31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_compare26(x0, x1, True, x2, x3, x4)
new_lt20(x0, x1, ty_Integer)
new_splitGT0(EmptyFM, x0, x1, x2, x3, x4)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs21(x0, x1, ty_@0)
new_mkVBalBranch0(x0, x1, Branch(x2, x3, x4, x5, x6), EmptyFM, x7, x8, x9)
new_ltEs6(x0, x1, x2)
new_esEs8(GT, LT)
new_ltEs20(x0, x1, ty_@0)
new_esEs8(LT, GT)
new_lt19(x0, x1, ty_@0)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs26(x0, x1, ty_Char)
new_lt21(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, ty_Double)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs22(x0, x1, ty_Float)
new_esEs27(x0, x1, ty_Integer)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_splitGT0(Branch(x0, x1, x2, x3, x4), x5, x6, x7, x8, x9)
new_ltEs7(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs7(Left(x0), Left(x1), ty_Int, x2)
new_lt20(x0, x1, ty_Bool)
new_lt21(x0, x1, ty_Int)
new_gt1(x0, x1)
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs16(x0, x1)
new_ltEs18(x0, x1, ty_Integer)
new_primEqNat0(Zero, Zero)
new_lt6(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(True, True)
new_compare115(x0, x1, False, x2)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Int)
new_esEs24(x0, x1, ty_Int)
new_splitLT0(Branch(x0, x1, x2, x3, x4), x5, x6, x7, x8, x9)
new_lt20(x0, x1, ty_@0)
new_esEs22(x0, x1, ty_Double)
new_lt4(x0, x1)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Integer)
new_lt6(x0, x1, ty_Int)
new_mkBalBranch6MkBalBranch5(x0, x1, x2, x3, False, x4, x5, x6)
new_primMulNat0(Zero, Zero)
new_ltEs7(Left(x0), Left(x1), ty_Char, x2)
new_primMinusNat0(Succ(x0), Succ(x1))
new_ltEs19(x0, x1, ty_Int)
new_emptyFM(x0, x1, x2)
new_primCompAux00(x0, GT)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_lt10(x0, x1, x2)
new_compare9(x0, x1)
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Bool)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_ltEs17(x0, x1)
new_esEs23(x0, x1, ty_Float)
new_compare5(x0, x1, ty_Double)
new_compare113(x0, x1, x2, x3, False, x4, x5, x6)
new_ltEs4(GT, GT)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, Branch(x5, x6, x7, x8, x9), x10, x11, False, x12, x13, x14)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_pePe(False, x0)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_compare24(x0, x1, False)
new_esEs30(x0, x1, x2, x3, False, x4, x5)
new_splitGT10(x0, x1, x2, x3, x4, x5, x6, True, x7, x8, x9)
new_compare5(x0, x1, ty_Ordering)
new_sIZE_RATIO
new_ltEs7(Left(x0), Left(x1), ty_Integer, x2)
new_esEs28(x0, x1, ty_Int)
new_lt13(x0, x1)
new_compare17(Char(x0), Char(x1))
new_esEs4(Just(x0), Nothing, x1)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs12(x0, x1, ty_Float)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(x0, x1, ty_Double)
new_mkBalBranch6MkBalBranch4(x0, x1, x2, x3, False, x4, x5, x6)
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_lt5(x0, x1)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs13(x0, x1, ty_Char)
new_esEs31(x0, x1, app(ty_[], x2))
new_esEs12(x0, x1, ty_Double)
new_compare10(Integer(x0), Integer(x1))
new_splitGT10(x0, x1, x2, x3, x4, x5, x6, False, x7, x8, x9)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_compare0(:(x0, x1), :(x2, x3), x4)
new_esEs26(x0, x1, ty_@0)
new_mkBalBranch6MkBalBranch3(x0, x1, x2, x3, False, x4, x5, x6)
new_splitLT10(x0, x1, x2, x3, x4, x5, x6, False, x7, x8, x9)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_primMulNat0(Succ(x0), Zero)
new_compare5(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare19(x0, x1, True, x2, x3, x4)
new_esEs25(x0, x1, ty_Ordering)
new_ltEs12(x0, x1, x2)
new_mkBalBranch6MkBalBranch4(x0, x1, Branch(x2, x3, x4, x5, x6), x7, True, x8, x9, x10)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_compare27(x0, x1, False, x2, x3)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primMulNat0(Zero, Succ(x0))
new_esEs4(Just(x0), Just(x1), ty_Char)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs20(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs32(x0, x1, ty_Double)
new_lt6(x0, x1, ty_Ordering)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_[], x2))
new_compare0(:(x0, x1), [], x2)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs22(x0, x1, ty_Integer)
new_primPlusNat0(Zero, Zero)
new_lt19(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Integer)
new_esEs21(x0, x1, ty_Double)
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare25(x0, x1, True, x2, x3)
new_compare14(x0, x1)
new_esEs26(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs23(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Float)
new_compare112(x0, x1, True)
new_compare0([], :(x0, x1), x2)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_ltEs18(x0, x1, ty_Float)
new_esEs24(x0, x1, ty_@0)
new_lt23(x0, x1, x2, x3, x4)
new_esEs18(:(x0, x1), [], x2)
new_lt21(x0, x1, ty_Float)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs12(x0, x1, ty_Int)
new_esEs32(x0, x1, ty_Float)
new_compare5(x0, x1, ty_Int)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs27(x0, x1, ty_Float)
new_addToFM_C0(Branch(x0, x1, x2, x3, x4), x5, x6, x7, x8, x9)
new_ltEs4(EQ, EQ)
new_primPlusInt(Pos(x0), Pos(x1))
new_esEs23(x0, x1, app(ty_[], x2))
new_compare5(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_compare18(Double(x0, x1), Double(x2, x3))
new_sizeFM1(Branch(x0, x1, x2, x3, x4), x5, x6)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_addToFM_C10(x0, x1, x2, x3, x4, x5, x6, True, x7, x8, x9)
new_esEs4(Nothing, Just(x0), x1)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_gt(x0, x1, x2, x3)
new_mkBalBranch6Size_r(x0, x1, x2, x3, x4, x5, x6)
new_esEs25(x0, x1, ty_Double)
new_lt11(x0, x1, x2)
new_compare12(x0, x1, x2, x3)
new_ltEs19(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Double)
new_ltEs4(LT, EQ)
new_lt21(x0, x1, ty_Double)
new_esEs32(x0, x1, ty_Char)
new_ltEs4(EQ, LT)
new_sr0(Integer(x0), Integer(x1))
new_pePe(True, x0)
new_ltEs20(x0, x1, ty_Double)
new_lt17(x0, x1)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_primPlusNat1(Zero, x0)
new_primMinusNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs13(x0, x1, ty_Integer)
new_ltEs8(Nothing, Nothing, x0)
new_compare0([], [], x0)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare111(x0, x1, True)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs31(x0, x1, app(app(ty_Either, x2), x3))
new_esEs20(x0, x1, ty_Int)
new_compare5(x0, x1, ty_@0)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), x1)
new_primEqNat0(Succ(x0), Zero)
new_ltEs14(x0, x1)
new_compare26(x0, x1, False, x2, x3, x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Char)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs31(x0, x1, ty_Int)
new_esEs12(x0, x1, ty_Ordering)
new_esEs30(x0, x1, x2, x3, True, x4, x5)
new_ltEs7(Left(x0), Left(x1), ty_Double, x2)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs32(x0, x1, ty_Int)
new_ltEs18(x0, x1, ty_Double)
new_esEs12(x0, x1, app(ty_[], x2))
new_esEs32(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, ty_Char)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs21(x0, x1, ty_Bool)
new_esEs8(EQ, EQ)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_asAs(False, x0)
new_ltEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt19(x0, x1, ty_Double)
new_primEqInt(Neg(Zero), Neg(Zero))
new_lt21(x0, x1, ty_Char)
new_ltEs10(x0, x1)
new_ltEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs15(Integer(x0), Integer(x1))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_ltEs11(x0, x1)
new_esEs21(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_splitGT20(x0, x1, x2, x3, x4, x5, x6, False, x7, x8, x9)
new_primPlusNat0(Zero, Succ(x0))
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt8(x0, x1, x2, x3, x4)
new_esEs18(:(x0, x1), :(x2, x3), x4)
new_esEs4(Nothing, Nothing, x0)
new_esEs13(x0, x1, ty_Ordering)
new_esEs12(x0, x1, ty_Integer)
new_esEs12(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(LT, LT)
new_sizeFM1(EmptyFM, x0, x1)
new_esEs26(x0, x1, app(ty_[], x2))
new_primCompAux0(x0, x1, x2, x3)
new_esEs31(x0, x1, ty_Integer)
new_compare5(x0, x1, app(ty_[], x2))
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, Branch(x7, x8, x9, x10, x11), False, x12, x13, x14)
new_esEs31(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs32(x0, x1, ty_Bool)
new_ltEs8(Just(x0), Nothing, x1)
new_esEs24(x0, x1, ty_Ordering)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(x0, x1, app(ty_[], x2))
new_splitLT0(EmptyFM, x0, x1, x2, x3, x4)
new_compare5(x0, x1, ty_Bool)
new_mkBalBranch6Size_l(x0, x1, x2, x3, x4, x5, x6)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_addToFM_C10(x0, x1, x2, x3, x4, x5, x6, False, x7, x8, x9)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_compare110(x0, x1, x2, x3, True, x4, x5)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs20(x0, x1, ty_Float)
new_ltEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_esEs25(x0, x1, ty_Bool)
new_primMulInt(Pos(x0), Pos(x1))
new_compare29(x0, x1, False, x2)
new_lt20(x0, x1, ty_Float)
new_lt19(x0, x1, ty_Char)
new_ltEs18(x0, x1, ty_Char)
new_lt21(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_primCmpNat0(Succ(x0), Succ(x1))
new_esEs27(x0, x1, ty_Bool)
new_ltEs15(x0, x1)
new_mkBranch(x0, x1, x2, x3, x4, x5, x6)
new_esEs12(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_mkBalBranch6MkBalBranch3(x0, x1, x2, EmptyFM, True, x3, x4, x5)
new_esEs25(x0, x1, ty_Int)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), ty_Bool, x2)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_esEs24(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Integer)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Bool)
new_ltEs7(Left(x0), Right(x1), x2, x3)
new_ltEs7(Right(x0), Left(x1), x2, x3)
new_compare112(x0, x1, False)
new_ltEs20(x0, x1, ty_Bool)
new_compare19(x0, x1, False, x2, x3, x4)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs9(False, False)
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs12(x0, x1, app(ty_Ratio, x2))
new_lt12(x0, x1, x2, x3)
new_lt20(x0, x1, app(ty_[], x2))
new_compare5(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_mkBalBranch6MkBalBranch4(x0, x1, EmptyFM, x2, True, x3, x4, x5)
new_lt21(x0, x1, ty_Integer)
new_mkVBalBranch3MkVBalBranch20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, True, x12, x13, x14)
new_lt20(x0, x1, ty_Int)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_compare6(x0, x1, x2)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs27(x0, x1, ty_@0)
new_ltEs20(x0, x1, ty_Int)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, EmptyFM, False, x7, x8, x9)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_esEs24(x0, x1, ty_Integer)
new_compare25(@2(x0, x1), @2(x2, x3), False, x4, x5)
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_addToFM_C20(x0, x1, x2, x3, x4, x5, x6, True, x7, x8, x9)
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_compare15(x0, x1)
new_esEs32(x0, x1, ty_Integer)
new_ltEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs32(x0, x1, ty_Ordering)
new_splitGT20(x0, x1, x2, x3, x4, x5, x6, True, x7, x8, x9)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs13(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_compare111(x0, x1, False)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs13(x0, x1, ty_Float)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(True, True)
new_esEs17(Char(x0), Char(x1))
new_splitLT20(x0, x1, x2, x3, x4, x5, x6, False, x7, x8, x9)
new_ltEs4(EQ, GT)
new_ltEs4(GT, EQ)
new_esEs13(x0, x1, ty_@0)
new_compare110(x0, x1, x2, x3, False, x4, x5)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, x5, x6, x7, True, x8, x9, x10)
new_not(True)
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs7(Right(x0), Right(x1), x2, ty_Integer)
new_addToFM(x0, x1, x2, x3, x4, x5)
new_esEs27(x0, x1, ty_Ordering)
new_esEs10(Double(x0, x1), Double(x2, x3))
new_esEs32(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, EmptyFM, x5, x6, False, x7, x8, x9)
new_lt16(x0, x1, x2, x3)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_not(False)
new_compare29(x0, x1, True, x2)
new_primPlusNat0(Succ(x0), Zero)
new_esEs20(x0, x1, ty_Bool)
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_splitLT20(x0, x1, x2, x3, x4, x5, x6, True, x7, x8, x9)
new_ltEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_compare11(:%(x0, x1), :%(x2, x3), ty_Int)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, x7, True, x8, x9, x10)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt14(x0, x1)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_mkBalBranch6MkBalBranch5(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs25(x0, x1, ty_Char)
new_esEs31(x0, x1, ty_Ordering)
new_esEs12(x0, x1, app(ty_Maybe, x2))
new_primPlusInt(Neg(x0), Neg(x1))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_ltEs8(Nothing, Just(x0), x1)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt6(x0, x1, app(ty_Ratio, x2))
new_esEs25(x0, x1, app(ty_[], x2))
new_compare24(x0, x1, True)
new_esEs18([], :(x0, x1), x2)
new_ltEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs22(x0, x1, ty_Int)
new_esEs8(EQ, LT)
new_esEs8(LT, EQ)
new_esEs9(False, True)
new_esEs9(True, False)
new_lt19(x0, x1, ty_Integer)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, ty_@0)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_mkVBalBranch3MkVBalBranch20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, False, x12, x13, x14)
new_esEs32(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_lt18(x0, x1)
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs13(x0, x1, app(ty_Maybe, x2))
new_esEs24(x0, x1, ty_Bool)
new_mkVBalBranch0(x0, x1, EmptyFM, x2, x3, x4, x5)
new_primCmpNat0(Zero, Succ(x0))
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18([], [], x0)
new_esEs13(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_@0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_lt19(x0, x1, ty_Float)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, ty_Char)
new_compare28(x0, x1, True)
new_esEs31(x0, x1, ty_Double)
new_esEs20(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs32(x0, x1, app(ty_[], x2))
new_mkVBalBranch3MkVBalBranch10(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, True, x12, x13, x14)
new_esEs20(x0, x1, ty_Ordering)
new_compare16(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux00(x0, EQ)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs32(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(LT, GT)
new_esEs19(@0, @0)
new_ltEs4(GT, LT)
new_ltEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_lt9(x0, x1)
new_ltEs5(True, False)
new_ltEs5(False, True)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primEqNat0(Zero, Succ(x0))
new_compare115(x0, x1, True, x2)
new_esEs4(Just(x0), Just(x1), ty_Double)
new_splitLT10(x0, x1, x2, x3, x4, x5, x6, True, x7, x8, x9)
new_mkVBalBranch3MkVBalBranch10(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, False, x12, x13, x14)
new_ltEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_mkBalBranch(x0, x1, x2, x3, x4, x5, x6)
new_esEs12(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs20(x0, x1, ty_@0)
new_esEs31(x0, x1, ty_Char)
new_esEs13(x0, x1, app(app(ty_@2, x2), x3))
new_compare28(x0, x1, False)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: